获取当前 ViewController 的子类 navigationController

Get subclassed navigationController of current ViewController

我有一个设置,我将 UINavigationController 子类化以添加一个 属性 保存对另一个 ViewController

的引用
class NavControllerWithReference: UINavigationController { 
    public var referenceToOtherVC: OtherVC? 
}

现在,当我位于此子类 NavigationController 中的 ViewController 之一时,我想访问引用 属性。对于 "normal" NavigationController,我通常只访问 navigationController 属性,这会 return navigationController。显然,它 return 作为 UINavigationController,即使它是子类,我也不能做类似的事情:

let navC = navigationController
if navC is [NavControllerWithReference] {  
    print("Yes")
}

这只是告诉我:

"Cast from UINavigationController to unrelated type NavControllerWithReference always fails".

如何从子视图控制器访问 referenceToOtherVC

你需要

guard let nav = self.navigationController as? NavControllerWithReference  else { return }
print(nav.referenceToOtherVC)