UITableViewController和UIViewController的父类

3
有没有一个类是UITableViewController和UIViewController的超类?因为我需要它来避免复制我的业务逻辑。

请说明您想要做什么。 - Karthik Sivam
UITableViewController只是一个实现了UITableViewDateSourceUITableViewDelegateUIViewController。因此,您可以在自定义基础视图控制器中实现这些内容,而无需使用UITableViewController。特别是如果您为UITableViewDateSource创建自定义类作为数据源。 - rckoenes
5个回答

2
我目前正在尝试实现相同的功能(创建一个超类以放置所有我的VC执行的自定义逻辑)。在我特定的情况下,我想使用Google Analytics的API跟踪屏幕视图,这应该在viewWillAppear中调用。这将要求我为每个视图控制器放置所需的任何代码。
但是我发现了这个宝石:方法混合。感谢Mattt Thompson先生!
如果您仔细阅读,您将发现您可以创建一个分类,其中您有能力替换给定选择器的现有实现。
但是正如@duncan d所指出的那样,如果您只想扩展行为,则可以简单地创建一个常规类别。

2
如另一位评论者所说,UITableViewController是UIViewController上的一个相对简单的API。您可以从UIViewController开始,并将管理表视图所需的逻辑添加到自定义类中。但是,如果您不使用UITableViewController,则可能很难或不可能支持像静态表视图和单元格原型这样的UITableViewController支持的功能。
另一种选择是创建UIViewController的类别,并将额外的方法添加到该类别中。类别方法可用于添加它们的类及其所有子类,几乎就像将方法添加到基类一样。
但是,类别方法有一些限制。
  • 您不能覆盖基类中的方法,只能添加新方法。
  • 您不能在类别中添加实例变量。

如果您正在向第三方框架的类添加方法,请确保为类别方法名称添加前缀,以便它们不会意外地与现有方法名称(特别是私有方法)发生冲突,无论是现在还是将来。 - jlehr

0
在您的应用程序中使用MVC模式,您可以创建一个Model来存储业务逻辑,并通过ViewController对象与视图进行通信。

0

NSObject是大多数类的父类..你需要提供数据源和代理类来实现表视图控制器..


-1
创建一个NSObject类,把所有的业务逻辑写在里面,并将其设置为单例,随时随地调用该类。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接