0

如果 viewController 在 navigationStack 中(可能是栈顶),
它会自动拥有 self.navigationItem 吗?

我一直在问题和教程中看到 self.navigationItem 和 self.navigationController 没有太多上下文,并且想知道这些变量的设置位置。

  • 编辑

哇,感谢您的快速回答。
我会在哪里发现官方文档中的信息(关于 self.navigationItem)?

4

3 回答 3

1

是的,如果它在堆栈中它确实有一个self.navigationItem,如果它不在导航堆栈self.navigationItem中将等于 nil

此属性在目标 c 类扩展中定义

@interface UIViewController (UINavigationControllerItem)

它定义了UIViewControllernavigation controller

于 2012-06-28T07:31:38.177 回答
0

是的,您将看到添加到导航控制器堆栈的每个控制器中设置的self.navigationItem和属性。一旦您调用或,self.navigationController这些属性就会被设置。pushViewController:animatedinitWithRootViewController:

于 2012-06-28T07:33:20.843 回答
0

它们不是由你设置的,除非你特别告诉它。还有其他一些不是由您直接分配的属性,例如:

self.tabBarController;

self.parentViewController;

这就是为什么你应该nil在尝试访问属性之前检查它是否是。

于 2012-06-28T07:33:48.753 回答