2011-10-20 114 views
0

在appdelagate导航控制器,我们有一个UINavigationController和视图控制器以及。那么我们可以使用根视图控制器初始化导航控制器。我明白为什么还需要它们。但是,在我的参考书(iPhone SDK应用程序开发,作者:Jonathan Zdziarski)的示例代码中,所有视图控制器类都添加了导航控制器作为属性,但它们似乎从未使用过。那么,将它们作为视图控制器类中的属性有什么意义?关于视图控制器

e.g

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

-(void)... 

..... 
... 
@end 

一个问题:

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

回答

1

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

检查的详细信息的文档:

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

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

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