我遇到一个问题,当SearchDisplayCotroller仍处于活动状态时,在调用popViewController后突然出现导航栏。
我正在实现一个具有搜索功能的简单tableview。以上是我的故事板。
在第一个视图中,我已按照以下方式实施。因此,导航栏将始终隐藏在第一个视图中。
- (void) viewWillAppear:(BOOL)animated{
[self.navigationController setNavigationBarHidden:YES animated:NO];
}
按下按钮将使用以下代码推送下一个表视图控制器,以便导航栏可见。
- (void) viewWillAppear:(BOOL)animated{
[self.navigationController setNavigationBarHidden:NO animated:NO];
}
在我实现以下代码之前,一切正常。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[self.navigationController popViewControllerAnimated:YES];
}
当SearchDisplayController仍然处于活动状态时,当popViewControllerAnimated:YES时,会出现一个奇怪的白色导航栏,而我的viewWillAppear无法隐藏该栏。这是一个错误还是有任何方法可以阻止此栏出现?
下面的gif也可以让你知道发生了什么。谢谢!
答案 0 :(得分:1)
试试这个
-(void) viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
// To check if searchDisplayController still active
if ([searchDisplayController isActive]) {
[searchDisplayController setActive:NO];
}
}
答案 1 :(得分:1)
在致电UISearchDisplayController
之前致电setActive:NO animated:NO
,尝试停用[self.navigationController popViewControllerAnimated:YES];