我有點新手程序員,所以我要求別人的意見/建議是什麼,他們會在我在的情況下做的。UIView類有太多委託方法父視圖控制器?
背景
由於約束我正在用來實現「彈出」窗口的庫,我目前正在研究UIView類(我們稱之爲Menu
),它創建了UIImagePickers
和各種其他視圖控制器(VCs
)。然而,由於UIView本身保持在它自己產生的任何VC之上,所以我不得不委託任何VC創建方法到Menu
的父VC,以便我可以關閉Menu
視圖,創建任何必需的VC,然後(有時)另外恢復Menu
視圖。
問題
我目前複製和粘貼數以百計的委託方法行了,有一個Menu
視圖任何的UIViewController。這些委託方法對於每個視圖控制器都是相同的,並且在那裏存在,因爲這些方法具有UIViewController
特定功能,例如presentViewController
。我試圖將父VC作爲參數傳遞給Menu
以減少重複代碼的數量,但這似乎是MVC-unkosher。什麼是解決這個問題的好方法?
創建'MainViewController'然後對其進行子類化。在'MainViewController'中實現你需要的所有方法。 – tbilopavlovic
由於您使用的是Swift,因此您可以採用面向協議的編程;創建一個實現所有委託方法的擴展,然後您可以在任何需要它的視圖控制器中簡單地採用此擴展。這與使用子類相似,但更靈活,因爲您可以根據需要採用多個擴展(協議) – Paulw11