NavigationController navigationBar 隐藏失败问题

发现系统一个bug,只要从搜索界面推到一个控制器B,需要对B隐藏navigationbar, 在viewwillappear 里面写代码根本就没起作用。后来网上找的答案:

如果在UINavigationController中的某一个UIViewController中使用了UISearchDisplayController,那么当我们使用search功能时,会隐藏NavigationBar,使用完以后会再让NavigationBar出现。当我们从UISearchDisplayController的搜索结果中选中一个cell,来在UINavigationController显示中显示一个新的UIViewController时,在这个新的UIViewController中的viewDidLoad和viewWillAppear中,setNavigationBarHidden:YES 都会失效。原因就是在使用UISearchDisplayController的时候,它接管了NavigationBar显示与否的控制,使我们的设置失效。

-(void) hideNavBar {
if (self.navigationController.navigationBar.hidden == NO)
{
[self.navigationController setNavigationBarHidden:YES animated:YES];
}
}
Then in the viewDidLoad method, I have the following:

[self performSelector:@selector(hideNavBar) withObject:nil afterDelay:0.0];

不过还是有点点问题,以后如果有更好的方法,再来总结。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容