我在故事板這樣的觀點: 控制多個視圖的最佳做法是什麼?
,你可以看到有一些固定的控制,和其他人,根據屏幕的類型而改變。 你認爲哪個更好?
1-用於多個屏幕的相同視圖控制器。 (更多代碼來控制視圖)
2-在同一屏幕中添加所有控件,然後通過代碼隱藏和顯示它們? (亂碼)
3-查看每個屏幕的控制器。 (複製代碼)
我在故事板這樣的觀點: 控制多個視圖的最佳做法是什麼?
,你可以看到有一些固定的控制,和其他人,根據屏幕的類型而改變。 你認爲哪個更好?
1-用於多個屏幕的相同視圖控制器。 (更多代碼來控制視圖)
2-在同一屏幕中添加所有控件,然後通過代碼隱藏和顯示它們? (亂碼)
3-查看每個屏幕的控制器。 (複製代碼)
不要使用「窗口」這個詞,它可能會導致對你想說的內容的不同解釋。使用單詞「屏幕」或「屏幕的部分」。在這種情況下,我會使用一個容器UIViewControllers
。要在此之間進行通信,請使用KVO
或NSNotificationCenter
(很可能是第二個)。還要確保沒有數據源直接在UIViewController
上(如數組或字典)。將數據源保存在其他地方,所有UIViewController
(或任何類別)都可以輕鬆訪問。你可以去一個單身人士。
將數據源置於遠離而不是直接位於UIViewController
的位置,爲您提供了更多的代碼靈活性。如果你需要使用新的UIViewController
,沒有什麼改變,他仍然可以從同一點請求資源。所以記住這一點。
編輯1
數據源也是視圖控制器裏面,有屏幕之間沒有 相互作用,它是相同的屏幕,但某些控件根據它的類型 變化,你覺得我現在必須做 ?
用這種方法的問題是,如果你需要,出於某種原因添加新的UIViewController
,也使用相同的數據源,你怎麼現在怎麼辦?我總是儘可能地從數據源中解耦UIViewController
。否則,如果應用程序發生變化(客戶需求發生變化),您將來可能會遇到問題。再次,將數據源移動到適當的類,並使用單例訪問它。
UIViewController <=> Singleton <=> Data Source
所以,現在你的建議,使多個視圖控制器與多屏?
我建議UIViewController
作爲其他人的容器UIViewControllers
。對我而言,在我去的時候組合屏幕更有意義,而不是在一個地方做所有事情。
我肯定會去沒有3.這種方法是最靈活的!並且它很乾淨=>保持良好
當前所有視圖都具有相同的視圖控制器,它們都具有連接到相同視圖控制器的插座。 數據源也在視圖控制器內部,屏幕之間沒有交互,屏幕是相同的,但是一些控件根據其類型而改變,您認爲我現在必須做什麼? – Mhdali
這是一種可能性,雖然我更喜歡「分而治之」。 – Peres
順便說一下,數據源不是問題,因爲所有屏幕與數據源的交互方式都是一樣的,所以現在您建議使用多個屏幕製作多個視圖控制器? – Mhdali