如何在Swift中避免MVC中的臃肿的ViewController?
我正试图保持视图接收输入并将其传递给控制器的Apple MVC设计模式。为了保持控制器精简并避免它变成一个臃肿的工作,我试图创建一个UIView
的子类,并接收用户输入以传递给控制器进行处理。但我遇到了如何在Swift中做到最好的问题。如何在Swift中避免MVC中的臃肿的ViewController?
为了将视图中的用户输入传递给控制器,我的子类将需要与关联的ViewController
进行通信,但我在SO上看到过有关如何不推荐的帖子。例如,This Q&A建议这很糟糕,但建议采用委托方式。来自同一Q &A的评论也指出这是不好的。
苹果自己的MVC例子并不能说明一个独立的UIView
子类,但使用现有UITableView
,这是所有家长UIViewController
内编码,使其臃肿,而不是薄控制器。
如何最好的方法呢?
我建议你阅读苹果的MVC模式的文档,因为我注意到你真的不明白模式的原则:Model-View-Controller
为了打造更轻的ViewController,看待这个问题:Lighter View Controllers
您还可能有兴趣在MVVM(在可可& CocoaTouch用于VC变薄)
看看这篇文章:Introduction to MVVM
你臃肿的视图控制经验lers不一定是你误解MVC模式的错。 iOS开发者伊利亚Punchka在他的教程后写的这约View Controller Thinning,并写道:
很多已经在这个话题已经说了,更会在今后的事业可以说可惜没有银弹和视图控制器仍然在许多项目中保持巨大。最近Andy Matuschak介绍了Let's Play: Refactor the Mega Controller!关于这个话题的实时编码会议。所以你可以看到这是一个非常了解而且仍然是实际的问题。
这种情况并没有得到苹果公司的示例代码的帮助,它也演示了大量的视图控制器综合症!看看上面的链接(尽管第一个是在Swift 2.0中,我有麻烦更新他的依赖Swift 3.0),他们都对这个主题的一些想法进行了有益的监督。
事实上,我学习如何编写iOS和Swift代码越多,我就越感到绝望,因为你越过每一个新的视野就会发现学习的内容。 –