在不同的UIViewControllers中重用自定义UITableView

时间:2012-04-26 06:18:16

标签: iphone ios uitableview code-reuse

我正在为iOS 5.1开发iPhone应用程序。我构建了一个UIViewController,它有一个UITableView,带有UISearchDisplayController和其他视图,所有这些都与表有关。 UIVIewController是表的委托和数据源,并对表和搜索显示控制器进行一些自定义(图形和业务相关)。到目前为止,一切都很好。

问题在于,现在我想在不同的控制器(应用程序的不同屏幕)中放置相同的表(可能具有不同的元素子列表,相同类型)。我试图将我的控制器的tableView添加为其他控制器中的子视图,但它不起作用。我试图重建我的表作为UIView的子类(而不是UIViewController)并将其添加为子视图,但它既不起作用(它从NIB文件加载视图,但它的所有属性,包括IBOutlets,其中nil或0x000000 )。

经过大量搜索后,我没有找到任何如何在不同控制器中重用tableview的示例。任何提示?任何例子?我应该将它构建为UIViewController还是UIView?哪个类应该是表和searchdisplay的委托,请记住我想要重用的大部分逻辑是代理中的代码?

提前谢谢大家

1 个答案:

答案 0 :(得分:1)

最简单的解决方案不是创建自己的Datasource类(可能是单例),然后将其重用于其他控制器吗?这样,您获取和管理数据的方式就从显示它的方式中抽象出来。就应该这样。 这就是MVC的全部意义所在。