我有一个扩展UIViewController的类X.令我惊讶的是,这个类可以有以下代码:
[self.navigationController popViewControllerAnimated:YES];
据我所知,navigationController是由UINavigationController.h中的类别添加的属性:
@interface UIViewController (UINavigationControllerItem)
@property(nonatomic,readonly,retain) UINavigationController *navigationController;
@end
我的类扩展了UIViewController,而不是UINavigationController,我看不到这个类别被引用了。我以为我必须导入类别才能访问它声明的成员。那么UIViewController如何访问另一个不相关的头文件中声明的属性呢?
谢谢, 亚诺什
答案 0 :(得分:1)
根据Apple文档,UIViewController具有navigationController属性:
视图控制器层次结构中最近的祖先,它是导航控制器。 (只读)。 如果接收器或其祖先之一是导航控制器的子节点,则此属性包含拥有的导航控制器。如果视图控制器未嵌入导航控制器中,则此属性为nil。
请参阅UIViewController文档。