0

這個問題是一個單獨的問題,我已經查看過,但一直沒能找到像這樣的問題,但也許我只是不知道具體要搜索什麼。通過導航控制器調用自定義加載方法

我有一個容器視圖,其行爲像用戶的導航(與其他選項,如保存),它位於我的大部分UIViewController s的頂部。所以每個視圖都可以從其他視圖訪問。我遇到的問題是,這可能會在UINavigationController中創建循環,這是不建議的。我目前的嘗試是除去根目錄UIViewController,然後加載新的視圖控制器。這是不好的,雖然它加載好,我的資產是相當內存密集型的,所以從頭開始加載它們或一次加載多個實例需要太多的內存。我將盡快減少資產規模以減少內存壓力,但我仍然認爲我這樣做的方式非常可怕並且效率低下,所以我想知道更有效的方式來管理UIViewController

這個問題的另一部分是關於加載這些UIViewController s。我有多種方法來輸入某些UIViewController,他們需要稍微不同的配置。我知道我可以用特定的初始化方法手動加載UIViewController,或者我可以使用NSNotification來告訴課程做一些額外的初始化工作,但我想知道是否有更好的方法來做到這一點,哪個選項會更好?

對不起,對任何建議表示讚賞。

+0

ü可以更改navigationviewcontroller.viewcontroller與你現有的已創建視圖,然後再添加新的訂單也刪除一些視圖控制器.. – CoolMonster

回答

1

對於問題一,聽起來像你不應該使用UINavigationController作爲你的容器視圖控制器的基礎。相反,您應該使用自己的自定義容器視圖控制器。

如果你想看看一個自定義的容器視圖控制器的一個例子,或者簡單地用一個類,使得它更容易一些,以創建一個,你可以在GitHub上檢查出我的類CLFContainerViewController:https://github.com/cflesner/CLFContainerViewController

它尚未更新,以便使用iOS 7所提供的所有新動畫選項,因此對動畫過渡進行動畫處理有點麻煩(儘管它爲您提供了很多靈活性)。但它與iOS 7完全兼容。

對於問題二,您如何創建它們完全是個人偏好。你可以創建自定義的init方法,或者你可以擁有你設置的屬性來配置視圖控制器。如果你使用的是自定義容器視圖控制器,你需要用初始化的初始化來初始化它們,或者如果你使用的是故事板,你可以調用instantiateViewControllerWithIdentifer:獲得一個實例。

+0

哦,容器視圖控制器不是一個uinavigation控制器,而是一箇中介,就像打一個按鈕在導航容器欄中調用改變當前視圖控制器的方法。對不起,如果這似乎有點不清楚。 –

相關問題