我对如何遵循Apple的标准来说,对于一个好的MVC模式设计特别感兴趣。让我用一个例子来说明我的问题。关注iOS MVC应用程序的分离
可以说我在屏幕上有一些相当复杂的UI元素,如UITableView
。基本上这些元素需要一个数据源和一个委托来处理交互。
有两种方法来处理这个问题。
我可以有相同的子类UITableViewController
处理所有元素,并根据请求UITableView
动态处理事物。
第二种方法是使用“轻量级”控制器来管理每个单独的视图。在iOS 4.x中,您不允许拥有多个UIViewControllers,因此这些控制器更适合管理状态和交互。
我不喜欢第一种方法,因为它没有缩放和似乎结合的东西。如果我有多个不同类型的复杂对象会怎么样?
第二种方法似乎更好。对象被封装得更好 - 关注点分离。唯一的缺点似乎是通信的复杂性增加。轻量级控制器将不得不委托给真实的视图控制器,或者他们必须有一些手段来执行实际操作。
你对这两种方法有什么经验?是否有更好的解决方案来分解复杂的界面?
感谢
但是如果我有多个Tableviews,所有链接回相同的ViewController呢?如果每个表视图需要从各个点检索数据,而不仅仅是CoreData?然后,所述视图控制器需要分别处理每个tableview。在更大的UIViewController中拥有单独的控制器对象会不会更清洁? – EightyEight 2012-03-22 19:28:05
不,不是。请记住,您可以指定数据源/委托为其他内容。因此,只需将其分配给另一个负责管理这些表视图的对象。无需“嵌套”UIViewControllers。 – 2012-03-22 20:20:26