关于视图控制器中的导航控制器

时间:2011-10-20 09:32:09

标签: iphone ios uiviewcontroller uinavigationcontroller

在appdelagate中,我们还有一个UINavigationController和视图控制器。然后在其中我们可以使用根视图控制器初始化导航控制器。而且我理解为什么还需要它们。

但是,在我的参考书(iPhone SDK应用程序开发,作者:Jonathan Zdziarski)的示例代码中,所有视图控制器类都添加了导航控制器作为属性,而它们似乎从未使用过。那么在视图控制器类中将它们作为属性是什么意思呢?

e.g

@interface XYZViewController: UIViewController
{
  UITextView *textView;
  UIButton *button;
  .....
  .....
  UINavigationController *navigationController;
}

-(void)...

.....
...
@end

还有一个问题:

导航后,所有UIViewController实例都可以拥有属性“navigationItem”。那么这个navigationItem引用了什么?它是指导航视图控制器的导航控制器吗?

1 个答案:

答案 0 :(得分:1)

UIViewController具有navigationController属性,由框架处理,如果有问题的视图控制器有一个,则它指向父UINavigationController

查看文档以获取更多信息:

http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIViewController_Class/Reference/Reference.html

相同的文档会告诉您navigationItem是一个UINavigationItem对象,它代表导航栏中的视图控制器。您可以自定义其外观,如标题,提示,后退按钮行为等。

那就是说,我不知道为什么你的书会为navigationController子类添加UIViewController属性。很久以前它已经在iOS 2.0中添加了......无论如何,您不需要添加它,因为它在UIViewController类中提供。