三种ViewController跳转的异同
1. - (void)presentViewController:(UIViewController*)viewControllerToPresent animated:(BOOL)flag completion:(void (^)(void))completion
MainVC *mainVC = [[MainVC alloc] init];
[self presentViewController:mainVC animated:YES completion:nil];
这种方式一般出现在需要使用者完成某件事情,如输入密码、增加资料等操作后,才能(回到跳转前的控制器)继续。例如系统的WIFI连接输入密码提示。默认动画是从下至上。
2. - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated 这种方式一般是使用者浏览资料,继而可以前进到下一个页面或回到上一个页面。默认动画是从右至左。
3. - (void)addChildViewController:(UIViewController *)childController 【三种ViewController跳转的异同】这个方法出现在iOS5以后,通过它即使不使用NavigationController也能够实现view hierarchy。有以下优点:
- 页面逻辑很清晰,相应的View对应相应的ViewController。
- 当某个子View没有显示时,将不会被Load,减少了内存的使用。
- 当内存紧张时,没有Load的View将被首先释放,优化了程序的内存释放机制。
推荐阅读
- Swift|Swift ----viewController 中addChildViewController
- UIPageViewController|UIPageViewController issue
- 异性之间,女人期待你主动追求,她会有三种小动作
- unity|unity 在iOS平台跳转appstore
- 如何确定多少个簇(聚类算法中选择正确簇数量的三种方法)
- 单例模式的三种实现方法
- 微信内如何防止推广链接被封,微信内随机跳转落地页的实现原理
- Scheme跳转协议
- Electron使用
- UITabBarController点击UITabBarItem|UITabBarController点击UITabBarItem 禁止跳转