假设 TabBarController 的一个 Tab View 为 Navigation View,它的 Root View Controller 是一个 Table View Controller,点击该 Tab,显示根视图(Tab Bar 显示);继续点击视图中 Table View 中的某一栏,进入子视图(Tar Bar 隐藏),点击子视图的 Navigation Bar 的返回按钮,回到根视图(Tab Bar 显示)。
方法一:Storyboard 实现
在 Storyboard 中选中子视图控制器,打开 Attribute Inspector,勾选 View Controller -> Layout -> Hide Bottom Bar on Push。大功告成!
方法二:代码实现
新建一个类 MyRootViewController,在 MyRootViewController.m 中的 viewWillAppear 方法中添加 self.tabBarController.tabBar.hidden = YES;
并且在 prepareForSegue 方法中添加 self.tabBarController.tabBar.hidden = NO;
注:
1. 不能在 的 viewDidLoad 方法中添加 self.tabBarController.tabBar.hidden = YES,这将导致返回根视图后 Tar Bar 不显示;
2. 不能在 viewWillDisappear 方法中添加 self.tabBarController.tabBar.hidden = NO,这将导致在点击别的 Tab 后 Tar Bar 隐藏。
只有理解了一个 View Controller 的 Life Cycle,才能够准确地插入合适的代码。
有时候,不断尝试也是个好办法!