美文网首页
代理传值(从后一页传到前一页)

代理传值(从后一页传到前一页)

作者: delegate | 来源:发表于2016-09-12 21:36 被阅读0次

前言:因为Object-C是不支持多继承的,所以很多时候都是用Protocol(协议)来代替。Protocol(协议)只能定义公用的一套接口,但不能提供具体的实现方法。也就是说,它只告诉你要做什么,但具体怎么做,它不关心。

当一个类要使用某一个Protocol(协议)时,都必须要遵守协议。比如有些必要实现的方法,你没有去实现,那么编译器就会报警告,来提醒你没有遵守××协议。注意,我这里说的是警告,而不是错误。对的,就算你不实现那些“必要实现”的方法,程序也是能运行的,只不过多了些警告。

Protocol(协议)的作用:

1. 定义一套公用的接口(Public)

@required:必须实现的方法

@optional:可选 实现的方法(可以全部都不实现)

2. 委托代理(Delegate)传值:

它本身是一个设计模式,它的意思是委托别人去做某事。

比如:两个类之间的传值,类A调用类B的方法,类B在执行过程中遇到问题通知类A,这时候我们需要用到代理(Delegate)。

又比如:控制器(Controller)与控制器(Controller)之间的传值,从C1跳转到C2,再从C2返回到C1时需要通知C1更新UI或者是做其它的事情,这时候我们就用到了代理(Delegate)传值。

首先创建两个ViewController,一个是OneViewController,另一个是TwoViewController,从twoVC中把值传到oneVC

@protocol Mydelegate<NSObject>

-(void)chuazhi:(NSString *)str;

@end

设置属性:

@property (weak,nonatomic)id delegate;

在twoVC的点击事件中:

if ([_delegate respondsToSelector:@selector(sendValue:)]) { // 如果协议响应了sendValue:方法

[_delegate  chuazhi:_textField.text]; // 通知执行协议方法

以上代理就设置完成了,在需要此参数的ViewController中先遵循代理

OneViewController *oneVC = 【OneViewController alloc】init】;

oneVC.delegate = self;

代理方法:

-(void)chuazhi:(NSString *)str

{

—textFiled。text = str;

}

小结:

当你需要定义一套公用的接口,实现方法可以是不同的时候,你可以使用Protocol协议。

当你需要进行类与类之间的传值时,你也可以基于Protocol协议,使用代理设计模式进行传值。

从前一页传到后一页就不用多说了,就是属性传值,相信大家都会使用的,喜欢的给个赞,谢谢大家

 

相关文章

  • 代理传值(从后一页传到前一页)

    前言:因为Object-C是不支持多继承的,所以很多时候都是用Protocol(协议)来代替。Protocol(协...

  • iOS 界面传值 Block,属性,协议,通知

    一、属性传值(只能由第一页传到下一页) 1、先在要推出的页面里定义一个属性,接收第一页的内容; 2、然后在将你定义...

  • Vue页面间传值

    Vue传值的方式有正向传值和反向传值 正向传值:上一页面 --> 下一页面 路由传值 本地储存 eventbus ...

  • 微信小程序页面间传值

    小程序传值的方式有正向传值和反向传值 正向传值:上一页面 --> 下一页面 url 传值 本地储存 全局的 app...

  • 界面之间的通信知识点总结

    界面通信的三种方法: 属性传值:将第一页页面的值传给第二个页面。 代理传值:实现界面传值要6步: 声明协议和协议的...

  • iOS 传值方式

    1,从前向后传值:属性传值 2, 从后向前传值: block、 代理、 通知 结论1, block、 代理 传值用...

  • iOS中2种正向传值,6种反向传值方式归纳总结

    1、属性传值 前向后传值。2、协议传值3、Block传值 代替协议代理传值,主要时间点问题。4、单...

  • 代理和block的简单理解及使用(对比)

    1.代理。代理从后往前传值(比如nsstring)。本文从B类(MyVC)传字符串到A类(ViewControll...

  • vim编辑器快捷键

    按「ctrl」+「b」:屏幕往“后”移动一页。 按「ctrl」+「f」:屏幕往“前”移动一页。 按「ctrl」+「...

  • ionic关于跳转那些事

    简单介绍一下跳转页面,和页面传值 引入 页面跳转并传值 返回上一页 请求接口失败或者成功返回页面 如果需要返回是传入值

网友评论

      本文标题:代理传值(从后一页传到前一页)

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