2011-08-12 62 views
0

我有一個導航控制器,我推送一個新的tableviewcontroller爲每個接收到的問題提問給用戶,所以在堆棧中,如果有30個問題被問到,它會建立多達30個控制器。iPhone:如何使UINavigationcontrollers內海誓山盟?

難度在於,在一些tableviewcontrollers中,我想通過使用tableview中的另一個導航控制器來獲取用戶的輸入:例如在tableview中(這是堆棧中的許多視圖中的一個),可能有uitablecell右邊有一個箭頭表示選擇你想要訂購的書籍,當他點擊箭頭時,一個新的tableview將會滑動,其中包括要選擇的書籍,並帶有複選標記,然後他將選擇並返回主桌面並繼續那裏的主要導航。

如何在主導航控制器內部實現新的導航器?或更好的想法?

編輯:這可能是一個想法推動詳細視圖到相同的控制器,但然後他們會得到當用戶「支持」immdidatly彈出,但我想顯示書籍(這是選擇在詳細視圖中)的主要表格,並且當用戶再次單擊該單元格時,detailview將與之前選定的書籍一起提供。這是一個好方法

+2

你提出的界面聽起來很混亂,但如果你真的想完成它,你需要實例化一個新的導航控制器,你的「書籍被選擇」視圖控制器作爲rootviewcontroller,然後簡單地以模態方式呈現導航控制器。 – Rog

+0

@Rog什麼是混淆?請讓我知道,如果我能更好地實施這一點? – Spring

回答

1

把一個UINavigationController的一個UINavigationController裏面是一個壞主意。你似乎真正想要的是在將一些視圖控制器從導航控制器的堆棧中彈出之後持續存儲狀態數據。

我會把狀態信息放入持久對象中。如果這是少量的狀態數據,那麼我可以將這些數據添加到我知道的持久化對象中,例如應用程序委託或根視圖控制器。我會將一組更復雜的持久數據保存到自定義對象中。該對象將被根視圖控制器保留,並且將給每個連續的視圖控制器一個引用。該對象可能具有可能已被從導航堆棧彈出並因此不再存在的控制器收集的數據。

1

我真的不明白爲什麼你不只是推uviewviewcontrollers的詳細視圖到主UINavigationController ..你能解釋一下更詳細一點嗎? 我沒有權利評論你的問題,所以我恐怕我不得不發表這個答案。

MFG,

側擊

+0

tnx,好主意我更新了問題請看。 – Spring

+0

用戶會像Rootviewcontroller-> TableViewcontroller-> SelectbooksViewcontroller,當他然後推回來,他應該再來 - > Tableviewcontroller再次? – SideSwipe

+1

這可以通過將所有uiviewcontrollers添加到主要uinavigationcontroller – SideSwipe