常用设计模式--委托模式

委托模式从GoF装饰模式、适配器模式和模板方法模式等演变过来的,几乎每一个应用都会或多或少得用到委托模式,不只是Cocoa Touch 框架,在Cocoa框架中,委托模式也得到可广泛的应用。
刚接触ios,对于代理不能掌握怎么使用,看了http://www.cocoachina.com/ios/20150112/10880.html
这编文章,让我对代理的使用方法有一定的了解。

以下是我个人对代理总结:

如果想取某一个控制器中的值的时候,需要在该控制机创建代理
eg:有两个控制器A和B,想将B控制器中的textField控件中的输入值
调到A控制器中的lable中去显示,这样被称为值的回调。

这样需要在B控制器中创建代理方法
首先 创建一个协议

@protocol ViewCollerBDelegate;

然后需要写一个代理方法来来保存需要回调的值

-(void)sendValue:(nstring *)value

也需要写一个委托代理人,一般都是弱引用

@property(nonatomic,weak)iddelegate;

在.m中将需要回调的值保存到value中去

在btn的方法中设置
- (IBAction)btnse:(id)sender
 {
    //如果协议响应了sendValue:方法
    if ([_delegate respondsToSelector:@selector(sendValue:)])
       {
  //通知执行协议方法
          [_delegate sendValue:_textd.text];
        }
    [self.navigationController popToRootViewControllerAnimated:YES];
  }

需要在A控制器做的是

遵守代理方法

.Delegate=self;

在实现代理的方法即可

-(void)sendValue:(NSString *)value
{
    _lab.text=value;
    NSLog(@"%@",value);
}

你可能感兴趣的:(常用设计模式--委托模式)