2014-10-28 30 views
0

我正在構建一個iOS應用程序,我無法確定如何多次推送單個ViewController多個視圖控制器導致內存壓力

爲了更清楚我們假設我有一個叫做A的VC,它是某個事件的接收者。當A攔截事件時,他推送給B(另一個ViewController)。現在問題來了。當A接收到另一條消息時,他試圖在A的頂部推一個C viewController。但是在幾次之後,我有一個由內存壓力引起的崩潰。有沒有簡單的方法來創建這樣的機制?

+0

你如何處理這取決於你想要什麼。當新事件進入時,應用程序在B中,您希望看到什麼?你是否想用你需要的任何東西來替換B的內容來回應這個新事件?你想要追加新的數據嗎,所以你可以看到兩者?你需要給我們一些關於你的應用程序的更多細節。 – rdelmar 2014-10-29 03:14:47

+0

我需要替換B的內容,所以通常我可能不需要實例化另一個VC,但是當我使用Built-in後退按鈕時,我需要查看以前的VC。像這樣A->推B - >推C現在我在C中,當我按下後退按鈕時,我想顯示B的內容。我可以做這樣的事情,而不需要每次都不用ViewController? – jack87 2014-10-29 06:16:42

+0

這很好,你仍然可以做到這一點。當A收到新事件時,只需替換B中的內容 - VCA在初始進行推送時已創建了對B的引用。它可以更新B中的一些屬性,並且B可以通過覆蓋該屬性的setter來檢測該更新。 – rdelmar 2014-10-29 06:19:30

回答

0

聽起來你需要重新思考你的導航模型。你提到推視圖控制器,這使我相信你正在使用UINavigationController。每次推送一個新的視圖控制器實例肯定會導致內存問題。

這聽起來像你可能會更好使用標籤欄導航,或自定義的東西,將換出視圖控制器的意見,而不是創建額外的視圖控制器。

相關問題