2016-07-30 21 views
-1

我遇到了我现在正在开发的应用程序的问题:我的一个UIViewController s很庞大(大约3000行)。如何处理巨大的视图控制器,使代码不脏?

现在,我创建了此视图控制器的扩展来处理委托方法,以便“分离”此控制器。例如,我有我的主视图控制器XYZMainViewController,并且由于此控制器是UITextField的代表,我创建了一个扩展XYZMainViewControllerTextFieldDelegateExtension.swift,其中我管理UITextFieldDelegate方法。

这样做还很肮脏。我想知道如何处理像这样的巨大控制器是一个很好的做法。

+0

HTTPS:。。。/ /www.objc.io/issues/1-view-controllers/ –

+0

巨大的显示器?微小的字体大小? – matt

回答

0

您是否认为使用MVVM(模型视图视图模型)设计您的应用程序MVVM的想法是避免巨大的控制器。这里有很多的用户指南解释了如何在IOS应用程序中使用MVVM。半年前我面对同样的情况,然后我在我的应用程序中采用了MVVM,并且我非常满意,因为我的控制器并不是很大,我可以在应用程序中轻松地重用代码,而且创建单元测试也更容易。 请按照本指南,解释什么是MVVM以及如何使用

ithttps://www.raywenderlich.com/74106/mvvm-tutorial-with-reactivecocoa-part-1

https://www.raywenderlich.com/74131/mvvm-tutorial-with-reactivecocoa-part-2

0

3000线是嗯巨大的。

您在控制器中执行了大量任务。控制器应该控制视图。我认为(我创建我的iOS应用程序结构的方式)控制器假定执行视图控制,从模型中传递数据以查看(更具体地说来自操纵数据的类)。

“在这里分开的问题”很重要。不要在控制器内实现业务逻辑。应该有一个单独的模块来完成所有业务逻辑。如何操作模型并完成功能。然后这个类被控制器用来执行视图更新。

无论您设计了哪种类型的os视图,其控制器不能为3000行。代表团不是问题。控制员是一个很好的委派的地方。在这些委托方法内部,执行一些业务不是控制器的工作。对于像MVC,MVVM这样的IOS应用程序,有一些设计模式。

但你仍然必须有效地使用“这些设计模式在一个地方移到通用的功能等业务逻辑实现的模型的通信手法配合数据库

感谢

相关问题