本人在做一个项目,在viewWillAppear已经加入了如下代码,
self.navigationController.navigationBar.hidden = YES ;
但是使用了UISearchDisplayController后,但是出现一个问题,就是在UISearchDisplayController消失后,navigationBar显示了。查找了API文档,找到这么一句话,
/* Displaying the search bar in a navigation bar will override the contentsController's navigationItem if it has one. */
@property (nonatomic, assign) BOOL displaysSearchBarInNavigationBar NS_AVAILABLE_IOS(7_0);
后来,又看到有这么一个属性,
@property(nonatomic,readonly) UIViewController *searchContentsController; // the view we are searching (often a UITableViewController)
于是,在代码里面加入如下语句,
_searchController.displaysSearchBarInNavigationBar = NO ;
_searchController.searchContentsController.navigationController.navigationBarHidden = YES ;
问题就解决了。
原因:在点击UISearchDisplayController中的查找输入框后,会弹出一个UITableViewController,而输入框会放在当前的ViewController中的navigationBar上面,所以导致了navigationBar显示。
**新发现: self.navigationController.navigationBarHidden = YES;
好像也能解决这个问题。**