UISearchDisplayController隐藏UINavigationBar

现在做的一个项目中用到UINavigationBar, 在搜索页面中,searchBar是放到navigationBar上面的. 效果如下面的图所示. 然后用UISearchDisplayController显示搜索的结果. 但是当你点击搜索框的时候,真个navigationBar就会被隐藏,消失掉. 当然你可以在-(void)searchDisplayControllerDidBeginSearch:(UISearchDisplayController *)controller 这个delegate方法中使用[self.navigationController setNavigationBarHidden:NO];使navigationBar显示出来,但是有个消失和再显示的过程,所以此方法不完美. 下面介绍一种没有消失和再显示过程的方法. 就是重新创建个CustomUISearchDisplayController来继承UISearchDisplayController 然后-(void)setActive:(BOOL)visible animated:(BOOL)animated方法进行重载 -(void)setActive:(BOOL)visible animated:(BOOL)animated { [super setActive:visible animated:animated]; [self.searchContentsController.navigationController setNavigationBarHidden: NO animated: NO]; } 这样就完美解决了.
原文地址:https://www.cnblogs.com/wanyakun/p/3403319.html