Swift 在UIViewController中访问自定义UINavigationController属性和方法

Swift 在UIViewController中访问自定义UINavigationController属性和方法,swift,uikit,Swift,Uikit,我创建了一个UINavigationController子类,MyNavigationController。我在应用程序中使用了这个导航控制器,它显示不同的视图控制器。我在MyNavigationController中添加了一些属性和自定义视图。我想从视图控制器的navigationController属性中访问这些属性,但此属性的类型是UINavigationController,而不是MyNavigationController(我了解原因),并且无法覆盖navigationControll

我创建了一个
UINavigationController
子类,
MyNavigationController
。我在应用程序中使用了这个导航控制器,它显示不同的视图控制器。我在
MyNavigationController
中添加了一些属性和自定义视图。我想从视图控制器的
navigationController
属性中访问这些属性,但此属性的类型是UINavigationController,而不是
MyNavigationController
(我了解原因),并且无法覆盖
navigationController
属性(因此,制作自己的
UIViewController
类没有帮助,我想保留
UINavigationController
默认动画等)

如何更改UIViewController的navigationController属性类型并使所有
MyNavigationController
属性、方法和视图都可访问? 我想不出来


有什么想法吗?谢谢!(:

您应该将其转换为自定义类类型

if let navController = self.navigationController as? MyNavigationController {
        navController.customMethod()
    }

您应该将其强制转换为自定义类类型

if let navController = self.navigationController as? MyNavigationController {
        navController.customMethod()
    }
另一个选择是:

(self.navigationController作为?MyNavigationController)。customMethod()

另一个选项是:


(self.navigationController as?MyNavigationController).customMethod()

为我没有弄明白而感到羞耻哈哈,非常感谢!为我没有弄明白而感到羞耻哈哈,非常感谢!