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 类型的;

  • 相关阅读:
    golang实现dns域名解析(一)
    互联网协议入门(一)(转)
    DNS入门(转)
    随笔:Golang 时间Time
    mysql查询某一个字段是否包含中文字符
    screen状态变Attached连接会话失败
    golang :连接数据库闲置断线的问题
    神奇的GO语言:空接口(interface)
    Go语言:变参函数
    go语言:函数参数传递详解
  • 原文地址:https://www.cnblogs.com/jiurong001/p/5198811.html
Copyright © 2011-2022 走看看