0

在此处输入图像描述

我有一个包含地图视图和表格视图的视图,类似于 facebook 附近位置屏幕在 facebook 应用程序中的外观。

我使用界面生成器将屏幕放在一起。我有到 tableview 和 map 的出口。而且,我将控制主视图的 UIViewController 设置为地图视图和表格视图的委托。一切都很完美。

然而,这个主 UIViewController 现在非常混乱,因为它必须代表它自己的视图、mkmapview 和 uitableview 响应方法。但是,数据在地图和表格视图之间有些共享。

我想知道这是否是 UIViewController 包含的地方?或者,如果我应该只制作自定义对象来充当这两个视图的代表。我正在寻找在现代 iOS 中使用的正确设计模式。几年前,将它们全部混合到同一个控制器中是可行的方法。也许它仍然是要走的路。

4

1 回答 1

1

你的两个想法都是好的想法,但是......

控制器包含通常用于更多与导航相关的目的,例如 UINavigationController。

执行一些委托/数据源工作的自定义对象,这也是一个好主意,但在它们与视图控制器和彼此共享数据的程度上有点笨拙。这可能是一个很好的解决方案,特别是如果其他视图控制器需要相同的委托/数据源行为。

第三种选择,可能是这三种中最好的一种,是创建视图控制器的类扩展(请参阅此处的苹果文档)。这些可以被认为是不同文件中类的一部分。

于 2013-07-08T20:34:12.623 回答