我有UIViewController
(AVC
)嵌入UINavigationController
。 AVC
(以模态方式呈现)会转移到另一个UIViewController
(BVC
)。在BVC
内,变量self.presentingViewController
的类型是可选的NavigationController
,而不是我期望的AVC
。
我必须将第一个childViewControllers
转发为AVC
,如下所示:
let pvc = self.presentingViewController
if let avc = pvc?.childViewControllers.first as? AVC {
// ...
}
为什么self.presentingViewController
不像我预期的那样,即AVC
?
非常感谢。
答案 0 :(得分:1)
要访问它
if let pvc = self.presentingViewController as? UINavigationController {
if let avc = pvc.viewControllers.first as? AVC {
// ...
}
}
//
<强> From Docs 强>
当您以模态方式呈现视图控制器时(显式或 隐式地)使用当前(_:animated:completion :)方法,视图 显示的控制器将此属性设置为视图 提出它的控制器。如果未显示视图控制器 在模态上,但它的一个祖先是,这个属性包含视图 提出祖先的控制者。如果既不是当前视图 控制器或其任何祖先都以模态方式呈现,价值 在这个属性是零。