使用storyboard:首先将ViewController嵌入到NavigationController中
使用序列
数据传输代码:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let detailController = segue.destination as? SecondViewController
detailController.object = self.object
}
无序列:
如果两个 ViewController 在同一个故事板中
func foo() {
let secondViewController = self.storyboard?.instantiateViewControllerWithIdentifier("secondViewController") as? SecondViewController
self.navigationController?.pushViewController(secondViewController!, animated: true)
}
如果两个 SecondViewController 在不同的故事板中
从 Bundle 中获取故事板,然后导航到它
func foo() {
let fooStoryboard = UIStoryboard.init(name: "Foo", bundle: Bundle.main)
let secondViewController = self.storyboard?.instantiateViewControllerWithIdentifier("secondViewController") as? SecondViewController
self.navigationController?.pushViewController(secondViewController!, animated: true)
}
没有故事板:
将您的 LoginViewController 嵌入为 rootViewController,以便可以进行导航。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
let fooStoryboard = UIStoryboard.init(name: "Foo", bundle: Bundle.main)
let loginViewController = fooStoryboard.instantiateViewControllerWithIdentifier("loginViewController") as? LoginViewController
let navigationController = UINavigationController(rootViewController: loginViewController)
self.window?.rootViewController = navigationController
return true
}
现在,您可以从 LoginViewController 中按上述建议以编程方式推送。