2014-04-23 24 views
0

我正在構建一個具有複雜視圖的iPhone應用程序。這個視圖渲染起來很昂貴,並且當用戶與應用交互時,理想情況下,這個視圖在屏幕上不會「中斷」。在這個視圖的前後,我需要展示幾個控件的「集合」:按鈕,標籤,文本字段等。根據用戶的操作,一組控件應該消失,另一組控件應該可見。管理這些轉變的最佳方式是什麼?管理具有相同背景的多組UIView

我可以爲每個狀態擁有不同的UIViewController,但是誰擁有中央複雜視圖?多個控制器可以共享相同的UIView,以便我可以在不共享視圖重新初始化/閃爍的情況下推送/呈現新的控制器?

目前,我有什麼是意大利麪條混亂:

if (state == x) 
    setHidden:YES 
    setHidden:YES 
    ... etc ... 
    setHidden:NO 
    setHidden:NO 
    ... etc ... 
} else if (state = y) { 
    setHidden:NO 
    setHidden:NO 
    ... etc ... 
    setHidden:YES 
    setHidden:YES 
    ... etc ... 
} 

它已經幾乎沒有管理和整個應用程序將最終結束了一個視圖控制器內如果有人不建議更好的東西。

我想: Managing multiple UIViews from one UIViewControllerSharing a UIView across multiple UIViewControllers without background flashing 在問非常類似的問題,但我不知道如何來的答案適用於我的問題。

回答

0

經過一些搜索我找到了答案,我的問題在這裏:Storyboards With Custom Container View Controllers

該解決方案包括嵌入若干意見容器「圍繞」中心的UIView。這些容器中的每一個都通過自定義的segues更改嵌入的UIViewControllers交換加載的控件集合。單個子視圖行爲的邏輯被封裝在嵌入式視圖控制器中,並且交換它們的邏輯都在自定義視圖容器類中。非常乾淨和可擴展。上述網站在解釋它方面做得更好。這裏有一個直接鏈接到例如在GitHub上:https://github.com/mluton/EmbeddedSwapping

一些蘋果的文檔,我也發現是有幫助的:

Creating Custom Container View Controllers