TabBar中添加UInavigation

上图是UInavigation view的层次结构。在有tab bar的情况下,给UITabbarController 指定viewcontrollers属性的时候,将需要展示的视图控制器用UINavigationController封装。

1
2
3
4
5
6
7
8
9
10
BNRHypnosisViewController *hvc = [[BNRHypnosisViewController alloc] init];
BNRReminderViewController *hvc = [[BNRReminderViewController alloc] init];

UITabBarController *tabBarController = [[UITabBarController alloc] init];

UINavigationController *navCtl = [[UINavigationController alloc]initWithRootViewController:hvc];

tabBarController.viewControllers = @[navCtl, rvc];

self.window.rootViewController = tabBarController;

同时,iOS7之后,由于navigation的存在,视图会被半透明的导航栏遮盖,此时可以在控制器加载试图前用self.edgesForExtendedLayout = UIRectEdgeNone;来将视图边界设为当前屏幕

最后是效果图:


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!