在appdelagate中,我们还有一个UINavigationController和视图控制器。然后在其中我们可以使用根视图控制器初始化导航控制器。而且我理解为什么还需要它们。
但是,在我的参考书(iPhone SDK应用程序开发,作者:Jonathan Zdziarski)的示例代码中,所有视图控制器类都添加了导航控制器作为属性,而它们似乎从未使用过。那么在视图控制器类中将它们作为属性是什么意思呢?
e.g
@interface XYZViewController: UIViewController
{
UITextView *textView;
UIButton *button;
.....
.....
UINavigationController *navigationController;
}
-(void)...
.....
...
@end
还有一个问题:
导航后,所有UIViewController实例都可以拥有属性“navigationItem”。那么这个navigationItem引用了什么?它是指导航视图控制器的导航控制器吗?
答案 0 :(得分:1)
UIViewController
具有navigationController
属性,由框架处理,如果有问题的视图控制器有一个,则它指向父UINavigationController
。
查看文档以获取更多信息:
相同的文档会告诉您navigationItem
是一个UINavigationItem
对象,它代表导航栏中的视图控制器。您可以自定义其外观,如标题,提示,后退按钮行为等。
那就是说,我不知道为什么你的书会为navigationController
子类添加UIViewController
属性。很久以前它已经在iOS 2.0中添加了......无论如何,您不需要添加它,因为它在UIViewController
类中提供。