ios - UIViewController 的 navigationController 属性

标签 ios objective-c uiviewcontroller uinavigationcontroller

我有一个扩展 UIViewController 的 X 类。令我惊讶的是,这个类可以有以下代码:

[self.navigationController popViewControllerAnimated:YES];

navigationController据我所知,是UINavigationController.h中的一个类别添加的属性:

@interface UIViewController (UINavigationControllerItem)
@property(nonatomic,readonly,retain) UINavigationController *navigationController;  
@end

我的类扩展了 UIViewController,而不是 UINavigationController,我看不出有任何方式引用这个类别。我以为我必须导入类别才能访问它声明的成员。那么 UIViewController 如何访问在另一个不相关的头文件中声明的属性呢?

谢谢, 亚诺斯

最佳答案

根据 Apple 文档 UIViewController 具有 navigationController 属性:

View Controller 层次结构中最近的祖先是导航 Controller 。 (只读)。 如果接收器或其祖先之一是导航 Controller 的子级,则此属性包含拥有的导航 Controller 。如果 View Controller 未嵌入导航 Controller ,则此属性为 nil。

请参阅 UIViewController 文档。

关于ios - UIViewController 的 navigationController 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20693367/

相关文章:

ios - 在 iOS 7 SDK 中找不到 libIOKit.A.dylib

objective-c - 解读 Mac OS X 崩溃报告

objective-c - 如果类属性是原子的,为什么我不能自定义 getter 和 setter?

iphone - 如何用科学记数法表示 NSNumber?

ios - Swift PresentViewController 关闭键盘

ios - iOS 7 中的 UISwitch 显示边框

android - Paypal 手机SDK : Authorize a token returned from SetExpressCheckout method

ios - Itunes 存档上传问题 ITMS-90530 和 ITMS 90098

ios - 从当前 View Controller 打开一个新的 ViewController

ios - 关闭模态视图 Controller