【iOS开发】——present和push

假期写UI的时候就遇到了到底是使用present还是使用push,二者虽都可以推出新界面,但是用法等方面略有不同。

一、 present与push之间的不同点和相同点

共同点

push与present都可以推出新的界面。

不同点

present与dismiss对应,push和pop对应。
present只能逐级返回,push所有视图由视图栈控制,可以返回上一级,也可以返回到根vc,其他vc。
present一般用于不同业务界面的切换,push一般用于同一业务不同界面之间的切换。

二、二者的使用方法

present

 self presentViewController: animated: completion:

这种方法就是以模态切换的方式切换页面。
返回之前的视图 [self dismissModalViewControllerAnimated:YES];
push 以后会在 navigation的 left bar自动添加back按钮,它的响应方法就是返回,所以一般不需要写返回方法,点back按钮即可。
假设是从A控制器转到B控制器,那么:
presentedViewController 就是B控制器;
presentingViewController 就是A控制器;

push

self.navigationController pushViewController: animated:

这个方法适用于在UINavigationController中切换视图,是导航控制器以入栈的方式切换页面。
返回之前的视图 [self.navigationController popViewControllerAnimated:YES];

总结:

在我理解看来,present就是UIViewController页面之间的单纯切换,而push是在UINavigationController中的页面的切换。

请添加图片描述
demo:GitHub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值