zoukankan      html  css  js  c++  java
  • 关于协议传值

    //  .h 内部的声明部分  (即:fourthController )

    //1 声明协议

    //UI中的协议名称为,当前类名 + Delegate

    @protocol FourthViewControllerDelegate <NSObject>

     //不加说明:默认是必须实现的方法

    - (void)pushValue:(NSString *)text uicolor:(UIColor *)color;

    @end 

    @interface FourthViewController : UIViewController 

    //2 声明协议的代理对象

    @property (nonatomic, assign)   id <FourthViewControllerDelegate>  delegate;//代理对象

    @end

    // .m 内部的实现

    // 3, 执行协议的方法   (写在具体需要传值的方法内部)

    if (self.delegate != nil && [self.delegate respondsToSelector:@selector(pushValue: uicolor:)] ) {  //代理不为空  代理内容接受

            [self.delegate pushValue:self.field.text uicolor:self.view.backgroundColor];//代理执行此方法,并且此时实现需要传的值

        }

    // 接收传值的内部 的   实现部分

    // 4 接受代理

    @interface ThirdViewController : UIViewController<FourthViewControllerDelegate>

    // 5 指定代理对象为当前的视图控制器

    fourthController.delegate = self;

    // 6 实现声明的协议方法

    //6 实现协议方法(写在当前视图控制器的  .m  内部)

    - (void)pushValue:(NSString *)text uicolor:(UIColor *)color{    

        self.label.text = text;

        self.view.backgroundColor = color;

    }

    注意:协议传值的 六步  一定要指定代理对象,并且声明代理对象的语义类型是 assign 类型的;

  • 相关阅读:
    数据的安装及常识
    数据库基础
    zabbix入门
    zabbix安装报错
    https
    rewrite
    keepalived
    计算机键盘在编辑情况下键盘不见,仅能输入字母
    集成学习
    js
  • 原文地址:https://www.cnblogs.com/jiurong001/p/5198811.html
Copyright © 2011-2022 走看看