如何创建一个具有UITableView的基础ViewController类?

时间:2015-02-06 20:58:16

标签: ios objective-c iphone uitableview uiviewcontroller

我有几个View Controllers,都使用UITableView,具有相同的自定义单元格。 UITableView数据源方法也是相同的(对于线);所有更改都是数据源本身(从中加载表视图的数组)。对于我来说,为5个这样的视图控制器复制完全相同的代码似乎相当多余(更不用说它是一个糟糕的编码实践!)。

因此,我想到了创建一个扩展UIViewController的基本(或父)视图控制器,并让所有以下(子)控制器继承自这个基本视图控制器。

我的问题是这样的:我的基本视图控制器需要有一个UITableView属性,它还包含DataSource方法。我无法在子视图控制器中获取UITableViews来引用其DataSource的父类。

我是否走错了路?有没有更好的方法来解决这个问题?非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

只需要一个控制器,您可以为其添加数据源的属性。

当你转向控制器或创建它时,设置数据源属性。

如果除数据源阵列外所有代码都相同,则只需要一个控制器。

在xcode中添加新的源文件:例如MyDataViewerController继承了UITableViewController

在创建该文件时,添加以下格式的属性:

@property NSArray *dataSource;

单击storyboard中的一个视图控制器,然后单击“类属性”检查器选项卡。将班级设置为MyDataViewerController

您现在可以使用此控制器显示您的任何数据。你可以删除所有其他的。

我假设它是一个包含数据的数组。用你使用的任何东西替换它。

假设您从某个地方转到此控制器,请在 prepareForSegue函数中设置该属性。