ios - iOS 基础 View Controller 的组合与继承

标签 ios objective-c inheritance

一般来说,我听说使用组合比继承更好,但我并不总是很清楚如何做到这一点。我想创建一些在我的所有 View Controller 中通用的功能(我想监听 NSNotification,并在收到通知时调用一个方法)。

我的想法是创建一个 BaseViewController,每个 UIViewController 都从中扩展。出于多种原因,我很乐意通过继承以外的任何其他方式解决此问题

  • 一些 View Controller 扩展了 UIViewController,一些扩展了 UITableViewController
  • 如果我用 swift 编写它,objc View Controller 不能将它子类化
  • comp over inheritance 的一般原因 - 更容易理解行为

我的问题是 - 如何在不将大量代码复制并粘贴到每个 View Controller 的情况下完成此操作?我显然可以在每个 View Controller 的 viewDidLoad 方法中插入一行,以添加一个监听器,并在每个 View Controller delloc 中插入一行,但我真的宁愿避免这种情况。是否有其他技术可以使它更清洁?

最佳答案

在 Swift 2.0 中,您可以使用带有默认方法实现的协议(protocol)。但在这种情况下,继承对我来说是最好的方法。

关于ios - iOS 基础 View Controller 的组合与继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32083000/

相关文章:

iphone - iOS平移和缩放动画

ios - 控制可能到达结束非空函数

objective-c - 在沙盒应用程序中获取用户在 Mac 上的下载文件夹的 API

ios - 在运行时定义类型别名

java - “this”关键字没有访问它应该访问的预期变量。为什么?

c# - 获取声明类的名称?

ios - 在 Swift 中使用步进器作为增量器/减量器

ios - 将数据从自定义 View 传递到 ViewController

php - TestFlight 中未收到 iOS FCM 推送通知

java - 多级继承不起作用