【问题标题】:Why is self.navigationItem.backBarButtonItem always nil?为什么 self.navigationItem.backBarButtonItem 总是为零?
【发布时间】:2011-08-03 21:05:35
【问题描述】:

我将视图控制器推送到导航控制器上,如下所示:

[self.navigationController pushViewController:anotherViewController animated:YES];

然后,在 anotherViewController 中检查 self.navigationItem.BackBarButtonItem 和 LeftBarButtonItem,但它们始终为零。

我可以看到 backBarButtonItem,它似乎工作正常。

【问题讨论】:

  • 确保您只尝试在viewDidAppear.. 之后在viewWillAppear/viewDidLoad/init.. 中读取backBarButtonItem 等,导航控制器还没有设置后退按钮,因为视图尚未完全推送到导航堆栈上。

标签: objective-c cocoa-touch ios4


【解决方案1】:

来自文档: “当该项是导航栏的后一项时——当它是顶部项下的下一项时——它可以表示为导航栏上的后退按钮。使用此属性来指定后退按钮。目标和动作您设置的后退栏按钮项的值应为 nil。默认值为显示导航项标题的栏按钮项。"

我的意思是它始终为 nil 是惯例,并且默认值始终为 nil。

这里讨论了关于 self.navigationItem.backBarButtonItem 为 nil 的类似主题: Changing the UIBackButtonItem title

【讨论】:

  • 我认为这是正确的。如果我手动坐下,backbarbuttonitem 不会为零。我正在检查后退按钮是否存在,因为如果它在那里,我不想用另一个按钮覆盖它。如果我在更多视图控制器中,我最终测试了标签栏的选定索引。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-13
  • 1970-01-01
  • 1970-01-01
  • 2021-03-19
  • 2018-09-19
相关资源
最近更新 更多