2016-03-05 55 views
0

爲了解釋我有什麼問題,我會盡快解釋這種情況。我有一個合成器,我有幾個「控制視圖」。一個控制視圖可能是4個垂直滑塊,而另一個控制視圖是一個大矩陣或其他東西。所以,說我有控制視圖1-4。另外,我有兩個主要部分(只是持有者視圖),其中可以包含4個控制視圖中的一個。在任何時候,sectionA可以有controlView4,而sectionB可以有controlView2。這工作完美。同時在兩個地方的UIView?

與此問題是SectionA不能有ControlView1SectionBControlView1同時。這會導致不良行爲。例如,如果SectionA當前有ControlView1,而SectionBControlView4(它將在下一個切換時繞回到ControlView1),那麼比下次切換SectionB的活動ControlView時,SectionA的ControlView將簡單消失。 (大概是因爲UIKit將它作爲SectionB的子視圖添加到SectionA的子視圖中時隱式地將其刪除)。 。話雖如此,有什麼方法可以實現我想要的,而不會偏離iOS最佳實踐和理智的代碼設計?

回答

0

首先,我想要爲每種類型的視圖有不同類型的視圖控制器。然後,每次我想要一個部分的視圖時,我都會創建其匹配的控制器並讓它接管該容器區域。如果這四個部分隨後顯示同一視圖的多個副本,則每個部分都有自己的控制器以保持其組織性。

假設您的數據模型與視圖和控制器分開,應該沒有額外的複雜性。

+0

謝謝。我從中得到的關鍵是我需要更多的模型抽象在我的架構中,甚至開始考慮做我想做的事情。我認爲的關鍵部分是TabBarVC,可以在各種VC之間進行選擇,例如MatrixVC和4SlidersVC,每個視頻和模型都有一個視圖和模型,最終用模型與合成器音頻引擎的狀態進行交互來存儲狀態。儘管最後一步還不清楚。 –

+0

聽起來不錯。有了你描述的靈活性,你想要的最後一件事就是需要將狀態從控制器傳遞到控制器。 –