概述
iOS页面跳转有人说是五种,其实上本质上可以分三种
- 一种是置换(常见的是app自动登录,根据用户是否退出,显示不同的第一个页面)
- 一种
UINavigationController 进行push 或 pop
- 还有就是
modal形式(presentViewController)
例子
置换
1 2 3 4 5 6 7 8
| if(autoLogin){ let mainController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("mainScene") as! MainTabBarViewController; self.window?.rootViewController = mainController; }else{ let loginViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("loginScene") as! LoginViewController; let navi = UINavigationController(rootViewController: loginViewController); self.window?.rootViewController = navi; }
|
UINavigationController控制
1 2 3 4
| self.navigationController?.pushViewController(myViewController, animated: true)
self.navigationController?.popViewControllerAnimated(true)
|
这种方式和用storyboard中的拖线选push是一样的原理
1 2
| self.performSegueWithIdentifier("xiangmuSegue", sender: self);
|
modal形式
1 2 3 4
| self.presentViewController(myViewController, animated: true, completion: nil);
self.dismissViewControllerAnimated(true, completion: nil)
|
storyboard形式同上
push和modal的区别
modal方式 就相当于一个一个桌子
push方式 就相当于摞盘子
所以push方式 打开的页面在原页面的上面,关闭的时候也只能从上往下关,不能关闭中间的一个
而modal方式 如果一个桌子上放了一碟盘子 ,那么关闭这个桌子的话,上面的所有盘子也会关闭