delegate介绍
delegation委托其实也是一种架构设计模式,主要是由一个委托对象托给另一个对象去做它的工作。这里面需要用protocol协议实现,协议由requested必要方法,和option可选方法两种,协议提供编程接口,给调用者实现协议中的方法。
使用delegation的场景:
实现不同页面间的数据交互,可以用在页面跳转,界面传值,跳转页面刷新数据以及监听事件等等,当delegate的事件触发时,delegate才会被调用。
建立两个页面 A 和 B,我们假设他们的文件名为ControllerA,ControllerB
由A页面,点击跳转到B页面。在B页面中,进行一些操作,并得到一个值,并将这个值传回给A页面,并在A页面上显示出来(或者进行其他的操作)
首先,我们要在ControllerB的 .h 文件中声明协议(在interface那一行的前面),同时声明委托代理人(在interface那一行的后面):
@protocol ControllerBDelegate //声明协议,一般格式是 类名+delegate
//代理方法
@required//required表示一定要实现,optional则是可以选择实现的
-(void)sendAMessage:(NSString*)msg;
//-(void)触发事件名:(