谁能解释为什么有两个navigationItems ?当我像下面这样登录时:
NSLog(@"%@", self.navigationItem);
NSLog(@"%@", self.navigationController.navigationItem);
我得到了两个不同的 UINavigationItem 实例:
<UINavigationItem: 0x7f85b06f5a20>
<UINavigationItem: 0x7f85b06ab640>
我只以编程方式创建了一次 UINavigationController 。
Best Answer-推荐答案 strong>
所有 UIViewController 都有一个属性 navigationItem 。因此,由于UINavigationController 是UIViewController 的子类,它也有这个属性。
self.navigationItem 将是当你的 Controller 被推送时出现的。 documentation对于navigationItem ,这个属性很清楚
This is a unique instance of UINavigationItem created to represent the view controller when it is pushed onto a navigation controller.
self.navigationController.navigationItem would 如果 Apple 允许嵌套 UINavigationController 则显示的项目。但是,由于这是不允许的,所以最好忘记它。
关于ios - 两个 UINavigationItem?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/31055811/
|