我有一个设置,在这里我将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)

10-05 20:36
查看更多