1.一个导航控制器对应于一个视图控制器,
2.标签控制器是管理固定的几个视图控制器,子控制器是并列的。每一个分栏控制器只有一个UITabBar视图,用于显示UITabBarItem实例,UITabBarItem由当前的视图控制器管理,这一点与导航控制器中的UIBarButtonItem相同
3.UITabBarController用数组管理视图控制器,而导航控制器所管理的视图控制器之间的关系是上下级关系
当自定义导航控制栏的按钮的时候,一定要转化成UIBarButtonItem这个类型,之后才能添加到我们的导航栏上{(添加方法):
UIButton *button = [[UIButton buttonWithType:UIButtonTypeCustom]initWithFrame:CGRectMake(0, 0, 32, 33)];
UIBarButtonItem *item = [[UIBarButtonItem alloc]initWithCustomView:button];
self.navigationItem.rightBarButtonItem = item;}
push 需要导航控制器(navigationController)来调用
返回方法是 pop 而且要调用导航控制器
如果想要返回后标签工具栏出现,要调用下面这个方法:(在返回后的那个页面)
//视图将要出现的时候调用
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
RootViewController *rootVC = (RootViewController *)self.tabBarController;
[rootVC showTabBar:YES];
}
[self.navigationController showViewController:<#(UIViewController *)#> sender:<#(id)#>] 实现和push一样的效果!
- (void)pushAction{
PushViewController *pushVC = [[PushViewController alloc] init];
[self.navigationController pushViewController:pushVC animated:YES];
RootViewController *rootVC = (RootViewController *)self.tabBarController;
[rootVC showTabBar:NO];
}
模态视图
返回方式是dismisss
- (void)dismissAction{
[self dismissViewControllerAnimated:YES completion:nil];
}
- (void)presentAction{
ModalViewController *modalVC = [[ModalViewController alloc] init];
//模态视图
[self presentViewController:modalVC animated:YES completion:nil];
}