2011-10-20 169 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類中提供。