对于导航,我们使用了segue和instantiate。但哪一个最适合用于提高应用程序性能?你有什么主意吗?例如,如果我们的应用程序超过50页。您会建议哪一个?
它遵循:
prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let vc1 = segue.destination as? MyViewController1 {
vc1.somePropertyFromMyViewController1 = someValueFromTheOriginVC
}
else if let vc2 = segue.destination as? MyViewController2 {
vc2.someOtherPropertyFromMyViewController2 = someOtherValue
}
}
实例:
推 :
let viewController = storyboard?.instantiateViewController(withIdentifier: "storyboardIdentifier") as! UIViewController
navigationController?.pushViewController(viewController, animated: true)
当下 :
let viewController:UIViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("ViewController") as UIViewController
// .instantiatViewControllerWithIdentifier() returns AnyObject! this must be downcast to utilize it
self.presentViewController(viewController, animated: false, completion: nil)
是否存在实例化和segue之间差异的关键点。请让我知道,谢谢。
导航控制器推送方法最好使用segue。
在iOS上执行导航的标准方法之一是使用UINavigationController,每个视图控制器都可以弹出或推送其他视图控制器
虽然完成上述工作完全没问题(特别是对于更简单的应用程序),但随着应用程序的增长处理它会变得非常棘手 - 如果您希望能够从多个位置导航到同一个视图控制器,或者如果您想要实现类似于应用程序外部的深层链接。
有关https://medium.com/@johnsundell/navigation-in-swift-e4ed18031653的更多信息,请参阅此帖子