三级控制器

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];

}

你可能感兴趣的:(三级控制器)