委托模式从GoF装饰模式、适配器模式和模板方法模式等演变过来的,几乎每一个应用都会或多或少得用到委托模式,不只是Cocoa Touch 框架,在Cocoa框架中,委托模式也得到可广泛的应用。
刚接触ios,对于代理不能掌握怎么使用,看了http://www.cocoachina.com/ios/20150112/10880.html
这编文章,让我对代理的使用方法有一定的了解。
以下是我个人对代理总结:
如果想取某一个控制器中的值的时候,需要在该控制机创建代理
eg:有两个控制器A和B,想将B控制器中的textField控件中的输入值
调到A控制器中的lable中去显示,这样被称为值的回调。
这样需要在B控制器中创建代理方法
首先 创建一个协议
@protocol ViewCollerBDelegate<nsobject>;
然后需要写一个代理方法来来保存需要回调的值
-(void)sendValue:(nstring *)value
也需要写一个委托代理人,一般都是弱引用
@property(nonatomic,weak)id<ViewCollerBDelegate>delegate;
在.m中将需要回调的值保存到value中去
在btn的方法中设置
- (IBAction)btnse:(id)sender
{
//如果协议响应了sendValue:方法
if ([_delegate respondsToSelector:@selector(sendValue:)])
{
//通知执行协议方法
[_delegate sendValue:_textd.text];
}
[self.navigationController popToRootViewControllerAnimated:YES];
}
需要在A控制器做的是
遵守代理方法<ViewCollerBDelegate>
.Delegate=self;
在实现代理的方法即可
-(void)sendValue:(NSString *)value
{
_lab.text=value;
NSLog(@"%@",value);
}