2010-09-01 75 views
0

我有一個視圖控制器:不能推視圖入堆棧

@interface DetailViewController : UIViewController 

它顯示一個地圖和銷被滴到此地圖。當用戶點擊附件按鈕之一時,我想要另一個視圖被推送到用戶面前。

由於某些原因導航控制器始終爲空,當我運行下面的代碼。

hotelDetailViewController = [[HotelDetailViewController alloc] initWithNibName:@"HotelDetailViewController" 
                     bundle:nil]; 

if (![self navigationController]) 
{ 
    NSLog(@"navigation controller null"); 
} 

[self.navigationController pushViewController:hotelDetailViewController animated:YES]; 

我在做什麼錯?在哪一點我需要分配和初始化導航控制器,因爲它似乎是隻讀的?

+0

需要一些更多的代碼來顯示上下文,其中navigationController定義在哪裏? – 2010-09-01 15:40:17

+0

@Aaron它是'UIViewController'的屬性 – 2010-09-01 15:43:36

+0

我猜測處理動作的視圖控制器實際上並不在導航控制器內。也許你的DetailViewController是從其他地方嵌入的,但不是通過導航控制器的方法?關於這個事件的更多細節會很好。 – 2010-09-01 16:01:46

回答

4

在什麼時候我需要分配和初始化導航控制器,因爲它似乎是隻讀的?

嘛,你通常不會自己設置navigationController屬性,通常有一個導航控制器從一開始就建立了,然後通過你的DetailViewController到導航控制器,並在屬性設置這是。

「視圖控制器」編程指南中關於Navigation Controllers的部分解釋瞭如何設置導航控制器,或者使用nib文件或以編程方式。