在iOS的界面切换中我们经常使用push和present方法那么这两个有什么区别呢?
首先
present与dismiss对应
push和pop对应。
他们的存储也有区别
pushViewController 导航控制器入栈的方式切换页面
presentViewController 模态切换的方式切换页面
模态的定义
功能区别
present只能逐级返回,push所有视图由视图栈控制,可以返回上一级,也可以返回到根vc,其他vc。
present一般用于不同业务界面的切换,push一般用于同一业务不同界面之间的切换
Present
在开发过程中,经常遇到两个视图控制器之间的切换,导航控制器即UINaVigation是最常用的一种,有时为了某些效果又需要进行模态切换,即present。
如果a->b
a ->present b 之后,你会发现当前页面的navigationController是空的
在进行present之前,重新生成一个导航控制器,然后将下一个视图作为新生成的导航控制器的跟视图,将导航控制器present就行了看代码:
//代码如下
ViewController *VC=[[ViewController alloc]init];
UINavigationController *nav=[[UINavigationController alloc]initWithRootViewController:VC