iOS界面跳转方式

初学iOS,在跳转方式上碰壁了,原因是基础知识不牢固,总结一下自己的理解,如有错误请指正!


iOS 跳转方式有以下2种:

1:直接跳转,可以跳转到UIViewControllerUINavigationController类型的视图

presentViewController : 跳转     dismissViewController:返回


2.  导航跳转,只能跳转到UIViewController

使用栈方式进行界面间的跳转,根视图控制器必须是UINavigationController

        self.navigationController pushViewController 进行页面跳转   ,       popViewControllerAnimated : 返回

     

        导航跳转方式: 跳转到的界面都会默认带导航条,并且默认有返回按钮 <返回(根视图控制器没有返回按钮)


两种方式的使用场景:

首先说导航方式:使用导航方式的前提是根视图必须是UINavigationController类型,如果不是那么只能使用直接跳转方式了;

另外pushViewController函数的参数时UIViewController类型,不支持UINavigationController类型,否则会报错, 

而直接跳转方式是支持UINavigationController类型的。


所以根据①目标界面的类型是否UINavigationController、②是否要导航条、③根视图是否为UINavigationController类型即可判定使用哪种方式



导航控制器掌握:
 1.创建导航控制器
 [[UINavigationController alloc] initWithRootViewController:self.viewController];
 
 2.栈(栈中所有的子控制器)
 self.navigationController.viewControllers;
 
 3.将控制器压入栈中
 [self.navigationController pushViewController:second animated:YES];
 
 4.将控制器从栈中弹出
 1> 将栈顶控制器弹出
 [self.navigationController popViewControllerAnimated:YES];
 2> 回到栈底控制器(根控制器)
 [self.navigationController popToRootViewControllerAnimated:YES];
 3> 回到具体某一个控制器
 [self.navigationController popToViewController:<#(UIViewController *)#> animated:<#(BOOL)#>];
 
 5.导航栏显示的内容
 1> 栈顶控制器的navigationItem属性决定了导航栏上面显示的东西
 2> 导航栏左边的返回键,是由上一个控制器决定
 
 6.栈顶控制器
 self.navigationController.topViewController

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风流 少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值