IOS 协议代理

作者: 小暖风 | 来源:发表于2017-08-19 17:37 被阅读11次

代理的步骤:

1.定义协议方法

@protocol SecondViewControllerDelegate

-(void)changeFirstViewControllerLabel:(NSString*)string;

@end

2.把代理设置成secondViewController的一个属性。

@property(nonatomic,assign)id delegate;

3.

[self.delegate changeFirstViewControllerLabel:tf.text];

4.遵从协议

#import"SecondViewController.h"

@interfaceFirstViewController :UIViewController

svc.delegate=self;

5.调用协议方法-(void)changeFirstViewControllerLabel:(NSString*)string

{

label.text= string;

}

//代理本质是实现了对象的相互调用

//导航控制器中上级界面向下级界面传值,可以叫做正向传值

//最常用的策略,下级界面定义相应的属性来接收上级界面传递过来的值

//iOS7 之前(传值操作写在push 之后,是无法实现传值的)

//传值

//第一次调用视图控制器的view属性会触发loadView和viewDidLoad

//声明一个协议 (协议本质上是多个类共享的方法列表,只有方法的声明没有实现)

@protocol SendValue

//@required(必须实现的方法)

- (void)sendTitle:(NSString *)title;

//@optional 可选实现的方法

@end

//判断_delegate中是否支持sendTitle:方法

if ([_delegate respondsToSelector:@selector(sendTitle:)]) {

//为了增强代码的安全性(健壮性)

[_delegate sendTitle:btn.currentTitle];

}

想要检查某个类是否实现了某个协议或者某个类是否实现了某个协议的方法,可以通过以下方式来进行测试

//获取某个对象

MyClassView *myClassView = xxxxxxx;

//判断该对象是否实现了MyChooseDayViewDelegate协议

if([myClassView conformToProtocol:@protocol (MyChooseDayViewDelegate)]){

//TODO: balabalabala...

}

相关文章

  • IOS开发之协议和代理

    【iOS开发技术分享】协议与代理 【iOS开发技术分享】协议与代理 一、理解协议与代理 协议: 协议是一个方法签名...

  • [学习笔记]_iOS代理基本使用,界面间传值

    参考链接: 你真的了解iOS代理设计模式吗? iOS开发-Protocol协议及委托代理(Delegate)传值 ...

  • 系列:iOS开发-协议和代理

    系列:iOS开发-协议和代理 既然说到了协议和代理,那么就有必要解释下意思.协议:协议是一个方法签名的列表,在这个...

  • iOS知识点总结(4)- 常见的设计模式

    1. iOS常见的设计模式? 1.代理模式 //创建代理协议 @protocol RYTestDelegate <...

  • MVC设计模式:1-代理(delegate)协议

    在iOS开发中,经常使用到代理(委托)协议以及数据源协议,所谓代理(委托)协议,通俗来讲,顾名思义就是委托别人办事...

  • Swift2.0 代理的使用

    标签(空格分隔): IOS-Swift [toc] 声明一个代理协议 声明代理属性 调用代理方法 给代理赋值 继承...

  • 代理

    是iOS开发中一种普遍使用的设计模式代理组成:协议、代理方、委托方 协议 规定代理双方的行为 可以为方法列表,也可...

  • iOS与H5交互

    前提:在iOS控制器中加载UIWebView,设置代理,遵守UIWebViewDelegate协议。 一、iOS调...

  • iOS与H5交互

    前提:在iOS控制器中加载UIWebView,设置代理,遵守UIWebViewDelegate协议。 一、iOS调...

  • iOS与H5交互

    前提:在iOS控制器中加载UIWebView,设置代理,遵守UIWebViewDelegate协议。 一、iOS调...

网友评论

    本文标题:IOS 协议代理

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