2010-06-02 49 views
0

我需要在iPad應用程序中表示線性過程(思考嚮導)。在CocoaTouch(UIKit)中表示線性過程的正確方法是什麼?

原則上,我可以使用UINavigationController,並且只需爲進程的每個步驟推送新的控制器。但是這似乎相當低效,因爲我正在建模的流程沒有向後導航的概念,所以以前的所有視圖都會毫無意義地呆在附近並耗盡資源。

目前我不斷添加和刪除子視圖到一個「主」視圖控制器,並基本上交換了內容。這個工程雖然有效,但感覺相當笨拙,我希望有一些更好的方法來實現這一點。

此外,需要在視圖之間進行動畫過渡。 (我現在通過begin動畫/ commitAnimations工作)

更新: 澄清我的問題:我知道嚮導通常有一個後退按鈕。這不是我在這裏建造的。
必須顯示的過程可能有很多步驟(在某些情況下可能高達30-40),所以我真的不想讓39個過時的視圖控制器佔用內存。

+0

即使桌面上的嚮導設計允許您向後瀏覽堆棧,因此您的設計尤其是非標準的。如果你認爲有可能你的用戶希望能夠導航回來,那麼你應該重新設計。 – 2010-06-02 21:16:13

+0

我正在建造的不是我用來解釋目的的嚮導。 在這個過程中肯定沒有向後導航,它是應用程序的核心設計標準之一 – UloPe 2010-06-02 21:23:28

回答

0

您可以將每個視圖控制器的的backBarButtonItem設置爲nil以便您不顯示後退按鈕嗎?

+0

這可能會隱藏NavigationController的酒吧,但正如我上面寫的堆疊視圖的概念在彼此之上並不真正適合我的需求,因爲我從來不需要回到以前的觀點。 – UloPe 2010-06-02 21:17:37

+0

@UloPe的權利。我的建議是完全刪除後退按鈕。這樣你*無法回到不同的觀點。 – 2010-06-02 22:01:26

+0

我明白,但我仍然會有一堆舊視圖控制器,我不會在後臺再次顯示「懸掛」。 – UloPe 2010-06-02 22:10:44

0

您可以擴展uinavigationcontrollerdelegate並檢查每個推送事件的當前堆棧大小。然後,您可以用僅包含所需視圖控制器的新縮小陣列進行替換。順便說一句,如果你實現了一個良好的內存管理,並釋放viewDidDisappear上的每一個資源,我很確定這不是一個管理大量「空」視圖控制器的操作系統的問題。 希望它有幫助

+0

有趣的想法。我會嘗試。 – UloPe 2010-06-09 12:40:21

相關問題