2010-10-18 86 views
0

由於某些未知的原因,我不能推視圖,我會盡力解釋我能做的最好的,但我有很多複雜的意見,並且這將是一個噩夢來解釋但說我有以下方法。爲什麼self.navigationController =無方法

-(void)showDetailView{ 
DetailViewController *detailView = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil]; 
[self.navigationController pushViewController:detailView animated:YES]; 
[detailView release]; 
    } 

哪個工作,並將詳細視圖推到堆棧上,這是在我的主視圖和我的主線程。

所以在表格視圖中,我有一個帶有子視圖的單元,然後從另一個視圖控制器獲取其視圖。在那個視圖控制器中,我有更多的子視圖,並說當用戶點擊一個子視圖時,一個方法被調用。這又會在mainView上調用這個方法。

所以人們會認爲,那麼應該推動一個新的觀點。代碼運行後,不會發生錯誤,但視圖不會更改/切換。

我已經嘗試過從視圖控制器中調用視圖的各種方法。然後調用直接連接到導航控制器的方法來推送視圖。

有幾件事要補充。 1.我有一個IBAaction按鈕,推動視圖(工作正常) 2.我認爲它是因爲我通過這麼多的意見,但我假設,如果你調用推視圖控制器它會推動任何視圖通過它。 3.我已經檢查過什麼時候從主視圖調用方法self.navigationcontroller不= null。

但是,如果導航控制器通過調用方法調用它= null。

那麼無論如何要恢復導航控制器的空值?

林爲什麼我不能簡單地調用一個方法來推動一個視圖

感謝

回答

1

有點糊塗了它好,我現在

已經整理這在我是如何解決訪問上級上海華條款到我的觀點是

ID標籤的意見上海華這是我的子視圖是

id CellController = [self.view.superview.superview nextResponder]; 
[CellController performSelector:@selector(showDetailView:) withObject:Link]; 
細胞

然後調用我的細胞的方法,然後依次訪問它的父

id mainController = [self.view.superview.superview nextResponder]; 
[mainController performSelector:@selector(showDetailView:) withObject:Link]; 

然後主要仍保留其導航控制器,然後在節目詳細方法主要通過鏈接和推新視圖。

基本上,子視圖的總超視圖不能高於任何創建它的地方。因此,我的單元格中的子視圖不能通過我的mainView正確訪問和運行任何東西,我可以填充,但從未執行它應該如何。因此,訪問它的最高級別的超級視圖,然後獲取它作爲單元格訪問它的超級視圖在我的主視圖中,那麼我可以正確運行方法。

希望這是有道理的,只有讓我的頭在這一切。

感謝 - >How does one access a super's view controller?

對於ID標籤位,未使用編號以這種方式使另一學到東西

1

我只是今天幾乎同樣的問題。如果導航欄在您推送視圖時隱藏,則可能有一個無導航控制器。我解決這樣的問題:

self.navigationController.navigationBarHidden = NO; // So the navigation controller is not nil 
[self.navigationController pushViewController:articleInfoController animated:YES]; 
相關問題