美文网首页
委托与代理

委托与代理

作者: 王老板 | 来源:发表于2015-12-11 13:43 被阅读22次
    -(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
        if (buttonIndex == 0) {
            // 委托
            [_delegate buyIphone:@"📱"];
        }else if (buttonIndex == 1){
        // 通知
            NSDictionary *dic = @{@"boom":@"💣"};
            [[NSNotificationCenter defaultCenter] postNotificationName:@"changeLabel" object:dic];
            
        }
    }
    

    通知

    • 第一个页面
      • 1.注册通知
    [NSNotificationCenter defaultCenter] addObserver:self 
    selector:@selector(justDoIt:) name:@"changeLabel" object:nil];
    
     *    2.拿到暗号,做事情(changeLabel为暗号)
        ```
    

    -(void)justDoIt:(NSNotification *)obj{
    NSDictionary *dic = [obj object];
    _notificationOrigionLabel.text = dic[@"boom"];
    }```

    • 第二个页面
      • 1:对暗号
      • 在button里写
            NSDictionary * dic = @{@"boom":@"💣"};
            [[NSNotificationCenter defaultCenter] postNotificationName:@"zhadan" object:dic];
    
     *  changeLabel为暗号  
    

    委托

    @protocol BuyIphone6sDelegate <NSObject>
    -(void)buyIphone:(NSString *)str;
    @property(nonatomic,strong)id<BuyIphone6sDelegate>delegate;
    
    • 【第二个页面】
    • 1在第二个页面写协议,写在interface 上面
      @protocol BuyIphone6sDelegate <NSObject>
    • 2.在第二个页面 实例化协议的变量
      -(void)buyIphone:(NSString *)str;
    • 3.让协议变量去做做协议中的方法
      @property(nonatomic,strong)id<BuyIphone6sDelegate>delegate;
    • 在button里实现
     UIAlertAction *enter = [UIAlertAction actionWithTitle:@"委托" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
            [_delegate buyIphone:@"📱"];
            }];
    
    • 方法
    -(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
        if (buttonIndex == 0) {
            // 委托
            [_delegate buyIphone:@"📱"];
    
    • 【第一个页面】
      • 1.跳转页面的时候,签合同。

    vc2.delegate = self; self为vc1

    • 2.在interface中实现这个协议
      @interface DPNViewController ()<BuyIphone6sDelegate>
    • 3.在.m中实现协议方法
    -(void)buyIphone:(NSString *)str{
        
        _delegateOriginLabel.text = str;
    }
    

    相关文章

      网友评论

          本文标题:委托与代理

          本文链接:https://www.haomeiwen.com/subject/ydyyhttx.html