如果 viewController 在 navigationStack 中(可能是栈顶),
它会自动拥有 self.navigationItem 吗?
我一直在问题和教程中看到 self.navigationItem 和 self.navigationController 没有太多上下文,并且想知道这些变量的设置位置。
- 编辑
哇,感谢您的快速回答。
我会在哪里发现官方文档中的信息(关于 self.navigationItem)?
如果 viewController 在 navigationStack 中(可能是栈顶),
它会自动拥有 self.navigationItem 吗?
我一直在问题和教程中看到 self.navigationItem 和 self.navigationController 没有太多上下文,并且想知道这些变量的设置位置。
哇,感谢您的快速回答。
我会在哪里发现官方文档中的信息(关于 self.navigationItem)?
是的,如果它在堆栈中它确实有一个self.navigationItem
,如果它不在导航堆栈self.navigationItem
中将等于 nil
此属性在目标 c 类扩展中定义
@interface UIViewController (UINavigationControllerItem)
它定义了UIViewController
与navigation controller
是的,您将看到添加到导航控制器堆栈的每个控制器中设置的self.navigationItem
和属性。一旦您调用或,self.navigationController
这些属性就会被设置。pushViewController:animated
initWithRootViewController:
它们不是由你设置的,除非你特别告诉它。还有其他一些不是由您直接分配的属性,例如:
self.tabBarController;
self.parentViewController;
这就是为什么你应该nil
在尝试访问属性之前检查它是否是。