iOS页面跳转有人说是五种,其实上本质上可以分三种
UINavigationController
进行push
或 pop
modal
形式(presentViewController
)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;
}
//push新页面
self.navigationController?.pushViewController(myViewController, animated: true)
//关闭最上层页面
self.navigationController?.popViewControllerAnimated(true)
这种方式和用storyboard中的拖线选push是一样的原理
//先定义segue的ID
self.performSegueWithIdentifier("xiangmuSegue", sender: self);
//打开新页面
self.presentViewController(myViewController, animated: true, completion: nil);
//关闭置顶model页面
self.dismissViewControllerAnimated(true, completion: nil)
storyboard形式同上
modal方式 就相当于一个一个桌子 push方式 就相当于摞盘子 所以push方式 打开的页面在原页面的上面,关闭的时候也只能从上往下关,不能关闭中间的一个 而modal方式 如果一个桌子上放了一碟盘子 ,那么关闭这个桌子的话,上面的所有盘子也会关闭