已经略去部分无关代码,更关注主要内容。
第一种:
点击导航按钮
- (void)viewDidLoad {
UIBarButtonItem* btn = [[UIBarButtonItem alloc]initWithTitle:@"排版" style:UIBarButtonItemStylePlain target:self action:@selector(btnClick)];
self.navigationItem.rightBarButtonItem = btn;
}
-(void)btnClick
{
self.hidesBottomBarWhenPushed = YES; //进入下一个页面后隐藏Tabbar
[self.navigationController pushViewController:dsvc animated:YES];
}
-(void) viewDidDisappear:(BOOL)animated
{
self.hidesBottomBarWhenPushed = NO; //进入下一个页面后不隐藏Tabbar
//这里要详细的解释一下,我自己根据代码流程来解释的
// 1.调用btnClick方法,btnClick执行后会跳转,然后会触发这个方法
// 但是,在btnClick中已经先设置了self.hidesBottomBarWhenPushed = YES;
// 这是在跳转之前设置的,跳转执行后Tabbar已经隐藏了。
// 然后在调用本方法,这时候就要保证返回到原来的界面的时候Tabbar需要现实出来
// 所以在这里设置了self.hidesBottomBarWhenPushed = NO;
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
self.hidesBottomBarWhenPushed = YES; //进入下一个页面后隐藏Tabbar
[self.navigationController pushViewController:pvc animated:YES];
}
-(void) viewDidDisappear:(BOOL)animated
{
self.hidesBottomBarWhenPushed = NO; //进入下一个页面后不隐藏Tabbar
//这里要详细的解释一下,我自己根据代码流程来解释的
//现在有两个典型的情况来触发这个方法
// 2.点击列表的Cell,先触发didSelectRowAtIndexPath,然后再触发本方法
}
总结:了解框架代码的执行流程才好分析。