天天看点

Swift实现IOS界面的跳转

IOS开发中界面跳转有两种方式,上下跳转和左右跳转。

上下跳转_TO:

[objc]  view plain  copy  print ?

  1. let secondViewController = SecondViewController()  
  2. self.presentViewController(secondViewController, animated: true, completion: nil)  

上下跳转_BACK:

[objc]  view plain  copy  print ?

  1. dismissViewControllerAnimated(true, completion: nil)  

-----------------------------------------------

-----------------------------------------------

左右跳转_TO:

(将新的视图控制器PUSH到navigationController中,相当于入栈操作)

[objc]  view plain  copy  print ?

  1. let secondViewController = SecondViewController()  
  2. self.navigationController!.pushViewController(secondViewController, animated: true)  

左右跳转_BACK:

(将当前视图控制器从导航视图控制器堆栈中移除,从而返回到了上一级界面)

( - ) BACK_到上一级:

[objc]  view plain  copy  print ?

  1. let firstViewController = FirstViewController()  
  2. self.navigationController?.popViewControllerAnimated(true)  

( - ) BACK_指定界面:

[objc]  view plain  copy  print ?

  1. // 获得视图控制器中的某一视图控制器  
  2. let viewController = self.navigationController?.viewControllers[0]  
  3. self.navigationController?.popToViewController(viewController as! UIViewController, animated: true)  

( - ) BACK_根视图:

[objc]  view plain  copy  print ?

  1. self.navigationController?.popToRootViewControllerAnimated(true)  

根视图的设置需要在AppDelegate中设置:

[objc]  view plain  copy  print ?

  1. var window: UIWindow?  
  2. func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool  
  3. {  
  4.     var firstViewController = FirstViewController()  
  5.     var rootNavigationViewController = UINavigationController(rootViewController: firstViewController)  
  6.     self.window!.rootViewController = rootNavigationViewController  
  7.     return true  
  8. }