一般来说,我听说使用构图比继承更好,但我并不总是清楚如何做到这一点。我想创建一些在我的所有视图控制器中都很常见的功能(我想监听NSNotification,如果接收到notif则调用方法)。
我的想法是创建一个每个UIViewController扩展的BaseViewController。除了遗产之外,我很想以其他方式解决这个问题
我的问题是 - 如何在不复制并将大量代码粘贴到每个viewcontroller的情况下完成此操作?我显然可以在每个视图控制器viewDidLoad方法中插入一行,添加一个监听器,并进入每个视图控制器delloc,但我真的宁愿避免这种情况。是否有其他技术可以使这个更清洁?
答案 0 :(得分:0)
在Swift 2.0中,您可以使用协议和默认方法实现。但在这种情况下,继承是我的最佳方法。
答案 1 :(得分:-1)
据我所知,通过使用 Singleton Class 来实现一些在所有ViewControllers中都很常见的功能会更好。
创建一个包含Singleton类的简单swift文件,并在其中实现您想要在任何地方访问的常用函数。为该类创建一个共享实例,通过使用此共享实例,您可以调用应用程序的任何ViewController中的任何函数。这样您就可以重复使用代码而无需复制粘贴。