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

Posted

技术标签:

【中文标题】访问 UIViewController 中的自定义 UINavigationController 属性和方法【英文标题】:Access Custom UINavigationController properties and methods in a UIViewController 【发布时间】:2019-08-19 17:54:38 【问题描述】:

我创建了一个UINavigationController 子类MyNavigationController。我在应用程序中使用了这个导航控制器,它呈现了不同的视图控制器。我向MyNavigationController 添加了一些属性和自定义视图。我想从视图控制器的navigationController 属性中访问这些属性,但是这个属性的类型是 UINavigationController 而不是MyNavigationController(我明白为什么)并且navigationController 属性不能被覆盖(所以制作我自己的UIViewController课程无济于事,我想保留UINavigationController 默认动画等)。

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

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

很遗憾我没有弄清楚这一点哈哈,非常感谢!【参考方案2】:

另一种选择是:

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

【讨论】:

以上是关于访问 UIViewController 中的自定义 UINavigationController 属性和方法的主要内容,如果未能解决你的问题,请参考以下文章

UIViewController 上的自定义属性,如 splitViewController 或 tabBarController

在 UIViewController 的自定义表格单元格中的 UITextField 上成为 NextResponder

从 UIViewController 中删除我的自定义 MKMapView

instantiateViewControllerWithIdentifier 上的自定义 UIViewController

推送 UIViewController 的自定义导航栏

带有旋转的自定义 UIViewController 过渡