1. 有些事情,自己本身做不了,比如在一个新建数据的控制器中填好数据,想在另外一个展示数据的控制器中保存数据并展示。这个时候,要用到代理模式。
2. 新建数据的控制器作为委托方,展示数据的控制器作为代理方。委托方定义一个协议让代理方遵守。委托方拥有代理方的一个弱引用。
3. 委托方在某个地方A调用协议的方法。协议方法我喜欢以should开头比较好理解,比如想要保存数据命名为(shouldSaveInfo),意为代理(你)应该(帮我)保存数据信息。代理在preparedForSegue或者其他方法中设置自己为哪一个委托方的代理,并且重写协议方法。搞定。这个时候委托方在A处就会让代理执行重写的方法。