2011-08-03 147 views
11

我推一个视图控制器到导航控制器是这样的:为什么self.navigationItem.backBarButtonItem总是零?

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

,然后,里面anotherViewController我检查self.navigationItem.BackBarButtonItem和LeftBarButtonItem,但他们总是为零。

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

+0

确保你只尝试后'viewDidAppear'阅读'backBarButtonItem'等。在'viewWillAppear' /'viewDidLoad'/'init..',导航控制器还没有设置后退按钮,因为视图还没有被完全推到导航栈上。 – darvids0n

回答

5

从文档: ”当此项目是导航栏的后面项目(当它是顶部项目下面的下一项目时),它可能会在导航栏上表示为后退按钮。指定后退按钮,您设置的后栏按钮项目的目标和动作应为零,默认值是显示导航项目标题的栏按钮项目。

我认为这是约定它总是为零,并且默认值始终为零。

在这里讨论了self.navigationItem.backBarButtonItem是零类似的主题: Changing the UIBackButtonItem title

+0

我认为这是正确的。如果我手动坐下,backbarbuttonitem不会是零。我正在检查后面的按钮是否存在,因为如果它在那里,我不想用另一个按钮覆盖它。如果我在更多的视图控制器,我最终测试了选项卡的选定索引。 – Michael