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];
}
这样就完美解决了.