美文网首页
UIViewController 跳转用法

UIViewController 跳转用法

作者: 简书她姥爷 | 来源:发表于2018-09-10 15:23 被阅读0次

本文代码基于xcode9.2, swift4.0

Navigation跳转流程

适用于有树形层级关系的导航逻辑,类似入栈出栈,最底层是NavigationController,每新打开一页,会将先打开的页压入栈中;每关闭一页,会将该页从栈顶移除,然后显示栈顶页

navigate_jump.jpg

实现代码

FirstViewController.swift 跳转下一页代码:

let appDelegate = UIApplication.shared.delegate as! AppDelegate
let mainStoryboard = appDelegate.mainStoryBoard
let secondVC = (mainStoryboard?.instantiateViewController(withIdentifier: "secondVC"))!
self.navigationController?.pushViewController(secondVC, animated: true)

SecondViewController.swift 和 ThirdViewController,跳转下一页和FirstViewController一样

FourthViewController.swift 跳转上一页代码:

self.navigationController?.popViewController(animated: true)

FourthViewController.swift 跳转至第二页代码:

let controller = (self.navigationController?.viewControllers[1])!
self.navigationController?.popToViewController(controller, animated: true)

FourthViewController.swift 跳转至根页代码:

self.navigationController?.popToRootViewController(animated: true)

用法总结

  1. 通过storyboard初始化UIViewController用法

     let mainStoryboard = UIStoryboard(name: "Main", bundle: nil)    //根据name获取对应的storyboard
     let viewController = mainStoryboard.instantiateViewController(withIdentifier: "firstvc")    //根据Storyboard Id获取对应的ViewController
    
  2. navigateController跳转用法

     self.navigationController?.popViewController(animated: true)    //跳转上一页
     self.navigationController?.popToViewController(controller, animated: true)      //跳转至指定页
     self.navigationController?.popToRootViewController(animated: true)          //跳转至最底页
    

Present跳转流程

适用于详情、评价等无下级层次的逻辑

实现代码

FirstViewController.swift 打开SimpleViewController页:

self.present(simpleVC, animated: true, completion: nil)

SimpleViewController.swift关闭本页

self.dismiss(animated: true, completion: nil)

相关文章

网友评论

      本文标题:UIViewController 跳转用法

      本文链接:https://www.haomeiwen.com/subject/wypsgftx.html