2009-07-28 68 views
0

我使用UIViewController列出了2個不同地方的項目。一個地方是它的默認家,另一個地方是另一個控制器將它推到導航堆棧上以查看項目列表。標題和rightBarButtonItem從UINavigationBar消失

兩個地方可以讓你通過點擊導航欄的添加按鈕來添加新的項目了。該列表的行爲是基於NSObject *決定的,其名稱爲targetController,由其調用者設置爲self引用,否則默認爲nil

我遇到了一個問題,如果你讓它們同時在tabBar的單獨標籤中顯示,那麼navBar title/rightBarButtonItem會在首先調用的那個上消失。我終於明白,只要列表視圖被按下,導致navigationItem被刪除,navBar就會替換items堆棧。

我唯一的解決辦法是強制列表的視圖,只要按下一個按鈕的TabBar項目被彈出。 有沒有更好的方法?

順便說一句,我選擇使用相同的控制器2箇中不同的地方,以避免重複的功能,並因而保持更少的代碼。

+0

你是否在兩個地方顯示控制器的相同實例? – Tim 2009-07-28 22:46:56

回答

0

我敢肯定,並彈出和關閉導航堆棧的推觀點是完全正確的方式去處理切換視圖,而且如果你從導航Tab鍵把所有在一起,啪的觀點是可能是保持低內存使用率的好方法。只記得發佈它們。