我有一个设置,在这里我将UINavigationController子类化,以添加一个持有对另一个ViewController的引用的属性。
class NavControllerWithReference: UINavigationController {
public var referenceToOtherVC: OtherVC?
}
现在,当我进入此子类NavigationController中的ViewController之一时,我想访问reference属性。对于“常规” NavigationController,我通常只访问
navigationController
属性,该属性将返回navigationController。显然,即使它是子类的,它也将其作为UINavigationController返回,并且我无法执行以下操作:let navC = navigationController
if navC is [NavControllerWithReference] {
print("Yes")
}
这只是告诉我:
“从UINavigationController转换为不相关的类型NavControllerWithReference始终失败”。
如何从子视图控制器访问
referenceToOtherVC
? 最佳答案
你需要
guard let nav = self.navigationController as? NavControllerWithReference else { return }
print(nav.referenceToOtherVC)