码迷,mamicode.com
首页 > 其他好文 > 详细

UINavigationController

时间:2016-04-16 10:50:16      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:

推出一个新的界面,返回上个界面和回到首页有两种形式,一种是push和pop,另一种是present和dismiss,我们先说第一种

从RootViewController跳转到FirstViewController

1 // 实现点击事件(从RootViewController跳转到FirstViewController)
2 - (void)pushButtonClick:(UIButton *)sender {
3     
4     // 1.创建要跳转到视图控制器对象
5     FirstViewController *firstVC = [[FirstViewController alloc] init];
6     
7     // 2.push完成跳转
8     [self.navigationController pushViewController:firstVC animated:YES];
9 }

从FirstViewController 跳回 RootViewController(以下的几种方法都可以返回到根控制器)

 1 - (void)popButtonClick:(UIButton *)sender {
 2     
 3     NSLog(@"返回主视图");
 4     /*
 5      navigationController以栈的形式管理其他viewController,也就是先进后出,先进入的viewController放在栈底,后进入的viewController放在栈顶,在pop的时候,先pop栈顶,然后依次执行
 6      */
 7     // viewControllers所有处于栈中的控制器,使用此数组保存
 8     NSLog(@"%@", self.navigationController.viewControllers);  // 打印所有处于栈中的控制器
 9     
10     NSLog(@"%@", self.navigationController.topViewController);   // 打印处于栈顶的控制器
11     
12     NSLog(@"%@", self.navigationController.visibleViewController);  // 打印当前显示的控制器
13     
14     
15     // 返回到上一个视图控制器
16 //    [self.navigationController popViewControllerAnimated:YES];
17     
18     
19     // 返回到指定视图控制器
20     //RootViewController *rootVC = [[RootViewController alloc] init];
21     // 不能新创建的,我们要找到之前的,都是存在数组的,且根视图控制器在栈底,所以用self.navigationController.viewControllers[0]取出
22 //    [self.navigationController popToViewController:self.navigationController.viewControllers[0] animated:YES];
23     
24     
25     // 直接返回到根视图控制器
26     [self.navigationController popToRootViewControllerAnimated:YES];
27     
28  }

 

下面我们来介绍模态推出:

 1 // 实现模态推出界面
 2 - (void)showButtonClick:(UIButton *)sender {
 3     
 4     ShowViewController *showVC = [[ShowViewController alloc] init];
 5     
 6     UINavigationController *showNav = [[UINavigationController alloc] initWithRootViewController:showVC];
 7     
 8     // 设置模态动画
 9     showVC.modalTransitionStyle = UIModalTransitionStylePartialCurl;
10     
11     // 推出界面
12     [self presentViewController:showNav animated:YES completion:nil];
13     
14 }

返回上个界面:

1 - (void)click:(UIButton *)sender {
2     
3     [self dismissViewControllerAnimated:YES completion:nil];
4 }

 

UINavigationController

标签:

原文地址:http://www.cnblogs.com/zhizunbao/p/5397779.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!