插入协议中的viewDidLoad()

时间:2018-07-21 22:58:07

标签: ios swift uikit

我想写一个可以在所有UIViewController模态中使用的协议。该协议的目标是,例如,自动添加一个关闭按钮作为rightBarButtonItem。通过执行以下操作:

class ViewController: UIViewController, ModalController {
}

实现这种目标的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

协议如何自动执行某项操作?协议强制某些功能,变量的存在,并且可以提供默认实现以及可以调用的扩展功能。

这就是为什么从UIViewController派生更有意义的原因。

另一个选择是创建一个容器ViewController。一个ModalViewController作为容器,它将一个给定的UIViewController嵌入其中。这样,您可以为后退按钮腾出空间。

一旦您完成了一些教程并获得了一些使代码变得简单的代码,ViewController的组成就不是那么糟糕。通常,ViewController的组成可以使ViewControllers的编码变得漂亮;)。这是避免大量膨胀的ViewController的唯一方法,因此,如果您参加长期比赛,这是一项很好的技能。

Tutorial on ViewController composition.