2013-04-09 60 views
0

当我读的UINavigationController,物业navigationItem的API文档,具有尖端的navigationItem属性:解释一个UINavigationController

防止占压栏按钮项目的创建在你的导航项目创造的你视图控制器的观点

我不明白这是什么意思,有谁能够详细

回答

0

这可能是添加到文档相当最近,我今天这个偶然发现首次解释。此外,几乎所有我看到的按钮初始化的示例代码都发生在viewDidLoad方法中 - 根据引用的语句,显然这不是最好的选择。

苹果公司对我们说的是,当viewDidLoad方法尚未执行或根本没有执行时,可能会出现导航项的内容被请求的情况。 当您一次推送多个视图控制器时会发生这种情况。例如。通过使用setViewControllers:动画:接口或通过做这样的事情:

ViewController1 *firstViewController = [[ViewController1 alloc] init]; 
ViewController2 *secondViewController = [[ViewController2 alloc] init]; 
[navigationController pushViewController:firstViewController animated:YES]; 
[navigationController pushViewController:secondViewController animated:YES]; 

在这种情况下firstViewController的viewDidLoad方法将不会被调用,直到用户导航回去吧。如果您已将标题属性设置为firstViewController,那么您会希望后退按钮标有您在firstViewController中设置的标题。然而,后退按钮将被称为“后退”,因为当UINavigationController请求时,firstViewController的标题属性为零。

得出的结论是:搭售栏按钮项目的创建创建视图的适用于大多数情况。不过请记住,您可以在有或没有创建视图的情况下,在需要导航项信息的情况下使用。在这种情况下,考虑在viewcontrollers 初始化方法初始化navigationItem财产。