我有几个View Controllers,都使用UITableView,具有相同的自定义单元格。 UITableView数据源方法也是相同的(对于线);所有更改都是数据源本身(从中加载表视图的数组)。对于我来说,为5个这样的视图控制器复制完全相同的代码似乎相当多余(更不用说它是一个糟糕的编码实践!)。
因此,我想到了创建一个扩展UIViewController的基本(或父)视图控制器,并让所有以下(子)控制器继承自这个基本视图控制器。我的问题是这样的:我的基本视图控制器需要有一个UITableView属性,它还包含DataSource方法。我无法在子视图控制器中获取UITableViews来引用其DataSource的父类。
我是否走错了路?有没有更好的方法来解决这个问题?非常感谢任何帮助!
答案 0 :(得分:0)
只需要一个控制器,您可以为其添加数据源的属性。
当你转向控制器或创建它时,设置数据源属性。
如果除数据源阵列外所有代码都相同,则只需要一个控制器。
在xcode中添加新的源文件:例如MyDataViewerController
继承了UITableViewController
。
在创建该文件时,添加以下格式的属性:
@property NSArray *dataSource;
单击storyboard中的一个视图控制器,然后单击“类属性”检查器选项卡。将班级设置为MyDataViewerController
。
您现在可以使用此控制器显示您的任何数据。你可以删除所有其他的。
我假设它是一个包含数据的数组。用你使用的任何东西替换它。
假设您从某个地方转到此控制器,请在
prepareForSegue
函数中设置该属性。