2010-07-14 64 views
1

我試圖用一些分層視圖實現導航控制器。我想使用一個普通的UIViewController來展示挖掘的選擇,我不想使用導航欄 - 我想有我自己的自定義按鈕來返回一個關卡。如何在不使用導航條的情況下將控制器關閉導航堆棧

我看到這樣的例子:

[[self navigationController] pushViewController:nextViewController animated:YES]; 

,我的問題是:是navigationController所有UIViewControllers的財產?無論堆疊視圖如何,我可以參考self.navigationController嗎?如果我處於任意視圖,是否可以執行包含如下操作的按鈕操作:[self.navigationController popToRootViewController animated:YES];

我呈現的每個視圖都需要一個按鈕來返回到上一個視圖或根視圖,這取決於具體情況。我想在每個視圖控制器中創建該按鈕,並控制它返回到的堆棧中的哪個視圖。我在正確的軌道上嗎?

回答

7

navigationController是所有UIViewControllers的屬性嗎?

是的。

無論堆棧上的視圖是否可以引用self.navigationController?

UIViewControllerUINavigationController的堆棧上呼籲它navigationController時將返回UINavigationController對象。

如果我在任意視圖,可我有一個包含類似[self.navigationController popToRootViewControllerAnimated:YES];

是一個按鈕動作。 popToRootViewControllerAnimated:將使用戶轉到UINavigationController的根UIViewController,並且您可以使用[self.navigationController popViewControllerAnimated:YES];彈出頂部UIViewController。最後一個與點擊BackUIBarButtonItem相同。

我在正確的軌道上嗎?

是:)

+0

謝謝!我仍然處在學習曲線的陡峭部分,但每一步都是非常有益的。幾個月前看這個導航控制器的東西對我來說完全是胡言亂語,現在看起來(相當)清晰。沒有堆棧溢出我早就放棄了。很好,明確的答案! – Steve 2010-07-14 19:09:03

+0

信不信由你,但僅僅在4個月前,我並不瞭解C,Objective-C,Cocoa Touch或iPhone應用程序開發的第一件事情:)如果你真的設定了自己的學習方式(閱讀一些書籍,自己從頭開始構建一個應用程序),然後才知道自己在Stack Overflow上回答其他人的問題;) – 2010-07-15 00:10:09

+0

我正在努力,現在開始iPhone 3開發並獲取下一本遊戲書。 這很好用。我可以將一個新的控制器推入堆棧並將其彈出,然後擺脫導航欄。我的兩個新問題是:當我推新控制器時,我立即將模態視圖做出選擇 - 我如何讓底層視圖等待模態出現後纔可見(您可以看到它滑入模式向左滑動)。然後,如何從模態中將選擇信息返回到底層控制器? – Steve 2010-07-15 19:32:22

相關問題