一 代理的理解
Delegate 是IOS开发一个比较重要的概念,反正我开发的时候遇到很多,所以不熟悉也得熟悉,刚开始学习有些不解,直到真正用到时候才会觉得它很有必要,个人觉得delegate 要解决的问题就是:两个 Controller A 和 B, A需要完成一些事,但是自己做不了,只能B才能帮忙实现。例如A想实现从B 跳转到另外一个页面这件事。那么只能B来帮忙实现,所以代理就出现了。所以实现Delegate 只需要两个步骤 1, A定义代理 2, B实现代理 最后A 就可以调用代理了。
二 代理的实现步骤
如果一个类BController 已经写好了,可以直接这么写
extension BController: AControllerDelegate{ func pushToOtherController(id: NSInterger){ //定义一个C Controller 然后push 到C Controller里面 let c = CController.init() c.id = id self.navigationController?.pushviewController(c)self.delegate.pushToOtherController
三 常见的问题:
可能原因:初始化A Controller 时候忘记初始化delegate了,参考如下初始化
let a = AController.init() a.delegate = self //这句代码就是初始化delegate