Swift实现IOS界面的跳转,传值

时间:2022-10-27 18:43:32

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  
}