首页 > 其他 > 详细

关于协议传值

时间:2016-02-18 18:03:01      阅读:195      评论:0      收藏:0      [点我收藏+]

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

 

关于协议传值

原文:http://www.cnblogs.com/jiurong001/p/5198811.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!