UISearchController 隐藏tabbar的一个方法

来源:互联网 发布:js基础知识定义变量 编辑:程序博客网 时间:2024/05/27 20:59

UISearchController 隐藏tabbar的一个方法

一个基于UITabbarController的项目,使用 UISearchController 搜索的时候需隐藏tabbar,一个可行的办法是:
1. 实现UISearchControllerDelegate协议;
2. 在willPresentSearchController方法中隐藏tabbar,如 self.tabBarController.tabBar.hidden = YES;
3. 在willDismissSearchController方法中重新显示tabbar。

搜索结果通过navigationController push到详情页面,返回的时候会重新显示tabbar,而此时UISearchControllerDelegate的方法尚未执行,针对这个情况,可以新增加一个属性:@property (nonatomic) BOOL searchVCShowing;
然后再在viewWillAppear方法中添加如下代码:if (self.searchVCShowing) {
self.tabBarController.tabBar.hidden = YES;
} else {
self.tabBarController.tabBar.hidden = NO;
}
再在willPresentSearchController中设置searchVCShowing为YES,在willDismissSearchController中设置 searchVCShowing为NO。

这样就可以解决SearchController隐藏tabbar的问题了。

0 0