3

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

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

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

谢谢大家

4

1 回答 1

1

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

于 2012-04-26T06:57:24.370 回答