UITableViewController和UIViewController的超类

时间:2013-12-11 12:32:21

标签: ios objective-c uiviewcontroller uitableview

是否有任何ViewController是UITableViewController和UIViewController的超类?因为我不需要复制我的业务逻辑。

5 个答案:

答案 0 :(得分:2)

正如另一位评论者所说,UITableViewController是一个相当薄的API,位于UIViewController之上。您可以从UIViewController开始,并添加所需的逻辑来管理您的自定义类的表视图。但是,有一些UITableViewController支持的东西,比如静态表视图和单元原型,如果你不使用UITableViewController则很难或不可能支持。

另一种方法是创建一个UIViewController类别,并将额外的方法添加到该类别中。类别方法可用于添加它们的类和所有子类,几乎就像将方法添加到基类一样。

但是对类别方法有一些限制。

  • 您不能覆盖基类中的方法,只能添加新方法。
  • 您无法在类别中添加实例变量。

答案 1 :(得分:2)

我目前正在尝试完成相同的操作(创建一个超类来为我的所有VC执行自定义逻辑)。在我的特定场景中,我想使用谷歌分析跟踪屏幕视图' API,应在viewWillAppear中调用。这将要求我为每个视图控制器放置该方法中所需的任何代码。

但我找到了这个宝石:method sizzling。谢谢先生。马特汤普森为此!

如果仔细阅读,您会发现您将能够创建一个类别,您可以在其中替换给定选择器的现有实现。

然而正如@duncan d指出的那样,如果你只想扩展行为,你可以简单地创建一个常规类别。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

答案 4 :(得分:-1)

创建一个 NSObject类并在那里编写所有业务逻辑并将其设为 Singletone 并在任何您想要的地方调用此类