控制器之间传值,逆传
之间 控制器 传值
2023-09-14 09:09:01 时间
block有一个非常经典的操作就是控制器之间的传值:
假如说A向B传值是顺传,B向A传值是逆传
A->B顺传:仅仅须要重写prepareForSegue方法,在内部获取到B控制器。而且给B控制器内部的属性赋值就可以
B->A逆传:
1、首先要再B控制器中定义一个block,方法名一般以类名加Block命名,依据须要回传的值的个数以及类型定义相相应的參数,依据需求确定有无返回值,定义方式:typedef
返回值类型 (^类名Block)(參数类型 參数名称,……);
2、定义一个block属性@property(nonatomic,
copy) 类型Block block;
3、在A内部获取B,在prepareForSegue中获取segue的destinationViewController属性就可以,然后实现B的block。即用传回来的值干点什么
4、在B内返回A的时候调用block,把參数依次放进去
delegate传值(逆传)
假如说A向B传值是顺传,B向A传值是
1、首先在B内定义一个代理协议。协议名通常是以类名加Delegate命名,在协议内部定义方法。方法名一般以首字母小写的类名开头。第一个參数是本类对象
后面的參数依据须要往回传的值的个数确定
2、定义代理属性@property (nonatomic, weak) id<代理名> delegate;
3、A控制器遵守代理协议,实现相应的代理方法,即传回来的值干点什么
4、A中拿到B控制器,而且设置B控制器的代理是A
5、从B返回到A时先推断一下B的代理是不是实现了代理方法,假设实现了就运行代理方法,
相关文章
- TCP/IP、HTTP、Socket之间的区别和联系
- 人工智能 | 美国和中国研究领域之间的隔阂有多严重!!?
- 如何在博客的日志之间显示广告
- 之间的数据计算MySQL两个日期之间的数据(mysql两个日期)
- 之间的区别MySQL vs. MySQLi: 理解两者的差异(mysql和mysqli)
- Linux的精彩世界:各分支之间的不同(linux的分支)
- Drupal、IoT 和开源硬件之间的交集
- Linux vi与Vim:解析它们之间的不同(linuxvi与vim)
- Oracle联合更新让数据之间的交互更简单(oracle两表联合更新)
- 比较比较Oracle不同版本之间连接的差异(oracle不同版本连接)
- 解决无法在unicode和非unicode字符串数据类型之间转换的方法详解
- 分享下mysql各个主要版本之间的差异
- java与javascript之间json格式数据互转介绍
- javaScript中两个等于号和三个等于号之间的区别介绍
- SQLServer2005与sql2000之间的数据转换方法
- ThinkPHP中URL路径访问与模块控制器之间的关系