iOS编程(3)NavigationController

一、介绍

之前实现了TabBarController和TableViewController,即相当于完成了登录后的主页面,现在需要插入一个View,用于登录注册,且这个页面应该出现在主页面之前。

二、实现

这里主要是用到NavigationController来实现,因为NavagationController是一个存放ViewController栈,在AppDelegate.m文件中,设置登录后主页面为NavigationController的根页面,同时将需要插入的登录注册页面push进栈中即可,主要代码如下:
//Set Root View
    UINavigationController *rootNav = [[UINavigationController alloc] initWithRootViewController:rootTabBarView];
    self.window.rootViewController = rootNav;
//Push Sign Up View
    CCLoginViewController *ccLoginView = [[CCLoginViewController alloc] init];
    [rootNav pushViewController:ccLoginView animated:NO];

三、微小的工作

(1)pushViewController和presentViewController的作用都是插入一个新的View,但是pushViewController是在当前的Navigation栈中插入,而present是另起新的一个页面。
(2)在push或者present新页面的时候,如果新页面的背景颜色没有设定会产生卡顿的感觉,其实是动画过渡的时候新页面透明导致的。
(3)如果用pushViewController插入新页面(同一个NavigationController下),且想返回之前的某个页面,可以用popToViewController,使用方法如下:
//One
[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:2] 
animated:YES];

//Two
for (UIViewController *temp in self.navigationController.viewControllers) {
           if ([temp isKindOfClass:[SomeViewController class]]) {
              [self.navigationController popToViewController:temp animated:YES];
           }
       }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值