我正在尝试从 VC 转换为嵌入在导航 Controller 中的 VC。
就我的目的而言,这两行代码似乎完成了同一件事,但我想知道它们之间的真正区别是什么以及一个是否对另一个有利。
为此...
if let navController = segue.destination as? UINavigationController {
这是:
let viewController = navController.viewControllers.first as? myViewController
或者这个:
let viewController = navController.topViewController as? myViewController
更好?
最佳答案
这取决于你的意思。
第一个
View Controller 是导航 Controller 的第一个 subview Controller 。topViewController
是导航 Controller 的最后一个 subview Controller 。
所以它们是相反的。 碰巧在这种情况下它们是同一个 View Controller ,因为导航 Controller 只有一个 subview Controller 。但如果我是你,我不会养成这样的习惯,即想象这两行说的是同一件事。他们没有。
(就个人而言,我不会说这两件事。我说 navController.viewControllers[0]
。我说 as!
,因为我该死的最好是关于那个 View Controller 的类是正确的,否则我想崩溃。)
关于ios - navController.topViewController 还是 navController.viewControllers.first?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47614931/