iOS开发中界面跳转有两种方式,上下跳转和左右跳转。
下跳转_TO:
let secondViewController = SecondViewController() self.presentViewController(secondViewController, animated: true, completion: nil)
上跳转_BACK:
dismissViewControllerAnimated(true, completion: nil)
右跳转_TO:
(将新的视图控制器PUSH到navigationController中,相当于入栈操作)
let secondViewController = SecondViewController() self.navigationController!.pushViewController(secondViewController, animated: true)
右跳转带传值:
//属性传值,vc为将跳转到的页面 let vc = CarouselInfoWebController() //para为要传输到的变量 var para = Dictionary<String,String>() para["title"] = messageList[row].title para["content"] = messageList[row].content //translatePara是定义在vc页面的接收参数的变量 vc.translatePara = para vc.hidesBottomBarWhenPushed = true self.navigationController?.pushViewController(vc, animated: true)
左跳转_BACK:
(将当前视图控制器从导航视图控制器堆栈中移除,从而返回到了上一级界面)
( - ) BACK_到上一级:
let firstViewController = FirstViewController() self.navigationController?.popViewControllerAnimated(true)
( - ) BACK_指定界面:
// 获得视图控制器中的某一视图控制器 let viewController = self.navigationController?.viewControllers[0] self.navigationController?.popToViewController(viewController as! UIViewController, animated: true)
( - ) BACK_根视图:
self.navigationController?.popToRootViewControllerAnimated(true)
根视图的设置需要在AppDelegate中设置:
var window: UIWindow? func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { var firstViewController = FirstViewController() var rootNavigationViewController = UINavigationController(rootViewController: firstViewController) self.window!.rootViewController = rootNavigationViewController return true }