1

我正試圖保持視圖接收輸入並將其傳遞給控制器​​的Apple MVC設計模式。爲了保持控制器精簡併避免它變成一個臃腫的工作,我試圖創建一個UIView的子類,並接收用戶輸入以傳遞給控制器​​進行處理。但我遇到了如何在Swift中做到最好的問題。如何在Swift中避免MVC中的臃腫的ViewController?

爲了將視圖中的用戶輸入傳遞給控制器​​,我的子類將需要與關聯的ViewController進行通信,但我在SO上看到過有關如何不推薦的帖子。例如,This Q&A建議這很糟糕,但建議採用委託方式。來自同一Q &A的評論也指出這是不好的。

蘋果自己的MVC例子並不能說明一個獨立的UIView子類,但使用現有UITableView,這是所有家長UIViewController內編碼,使其臃腫,而不是薄控制器。

如何最好的方法呢?

回答

1

你臃腫的視圖控制經驗lers不一定是你誤解MVC模式的錯。 iOS開發者伊利亞Punchka在他的教程後寫的這約View Controller Thinning,並寫道:

很多已經在這個話題已經說了,更會在今後的事業可以說可惜沒有銀彈和視圖控制器仍然在許多項目中保持巨大。最近Andy Matuschak介紹了Let's Play: Refactor the Mega Controller!關於這個話題的實時編碼會議。所以你可以看到這是一個非常瞭解而且仍然是實際的問題。

這種情況並沒有得到蘋果公司的示例代碼的幫助,它也演示了大量的視圖控制器綜合症!看看上面的鏈接(儘管第一個是在Swift 2.0中,我有麻煩更新他的依賴Swift 3.0),他們都對這個主題的一些想法進行了有益的監督。

+0

事實上,我學習如何編寫iOS和Swift代碼越多,我就越感到絕望,因爲你越過每一個新的視野就會發現學習的內容。 –