如何创建具有 UITableView 的基础 ViewController class?
How to create a base ViewController class that has a UITableView?
我有几个视图控制器,都使用 UITableView,具有相同的自定义单元格。 UITableView 数据源方法也相同(到该行);所有变化都是数据源本身(从中加载 table 视图的数组)。必须为 5 个这样的视图控制器复制完全相同的代码对我来说似乎是多余的(更不用说这是一种糟糕的编码习惯!)。
因此,我想创建一个扩展 UIViewController 的基础(或父)视图控制器,并让我的所有后续(子)控制器继承自该基础视图控制器。
我的问题是:我的基础视图控制器需要有一个 UITableView 属性,它还包含 DataSource 方法。我无法让子视图控制器中的 UITableViews 引用父 class 的数据源。
我走错路了吗?有没有更好的方法来解决这个问题?非常感谢任何帮助!
只有一个控制器,您可以在其中添加一个 属性 作为数据源。
当您连接到控制器或创建它时设置数据源 属性。
如果除数据源数组外所有代码都相同,则只需要一个控制器。
在xcode中添加一个新的源文件:例如MyDataViewerController
继承了 UITableViewController
.
在创建的文件中,添加一个 属性 形式:
@property NSArray *dataSource;
单击情节提要中的一个视图控制器,然后单击 Class 属性检查器选项卡。将 class 设置为 MyDataViewerController
。
您现在可以使用此控制器显示您的任何数据。您可能可以删除所有其他的。
我假设它是一个包含数据的数组。将其替换为您使用的任何内容。
假设你从某个地方转到这个控制器,在
prepareForSegue
函数中设置 属性。
我有几个视图控制器,都使用 UITableView,具有相同的自定义单元格。 UITableView 数据源方法也相同(到该行);所有变化都是数据源本身(从中加载 table 视图的数组)。必须为 5 个这样的视图控制器复制完全相同的代码对我来说似乎是多余的(更不用说这是一种糟糕的编码习惯!)。
因此,我想创建一个扩展 UIViewController 的基础(或父)视图控制器,并让我的所有后续(子)控制器继承自该基础视图控制器。
我的问题是:我的基础视图控制器需要有一个 UITableView 属性,它还包含 DataSource 方法。我无法让子视图控制器中的 UITableViews 引用父 class 的数据源。
我走错路了吗?有没有更好的方法来解决这个问题?非常感谢任何帮助!
只有一个控制器,您可以在其中添加一个 属性 作为数据源。
当您连接到控制器或创建它时设置数据源 属性。
如果除数据源数组外所有代码都相同,则只需要一个控制器。
在xcode中添加一个新的源文件:例如MyDataViewerController
继承了 UITableViewController
.
在创建的文件中,添加一个 属性 形式:
@property NSArray *dataSource;
单击情节提要中的一个视图控制器,然后单击 Class 属性检查器选项卡。将 class 设置为 MyDataViewerController
。
您现在可以使用此控制器显示您的任何数据。您可能可以删除所有其他的。
我假设它是一个包含数据的数组。将其替换为您使用的任何内容。
假设你从某个地方转到这个控制器,在
prepareForSegue
函数中设置 属性。