objective-c - 关于iOS的几种传值问题。

查看:81
本文介绍了objective-c - 关于iOS的几种传值问题。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

在学习iOS的过程中,困扰我的一个问题就是 控制器页面之间的传值问题,例如顺传、逆传。

传值的方式有 代理传值、block传值、还有通知传值,有哪位好心大神能给讲一讲。

解决方案

顺传一般是直接传值

代理传值

A<B-Delegate>//A实现B协议

B //声明协议和方法 声明代理属性
Delegate->(methodFromB:(B)b value:(obj)obj)//B声明协议方法
property-weak-deleagte

//在A中
B.delegate = A;

//当B中发生传值时调用
B
[self.delegate methodFromB:self value:obj]

//因为 self.delegate = A
//A中执行定义的协议方法接收到值
-methodFromB:(B)b value:(obj)obj   

block传值

A
//A中实现B的block的代码块
B.block = ^(obj){

};

B//声明代码块
typedef BBlock
property-block

//当B中调用
self.block(obj);
就会调用A中以实现的代码块实现传值

通知传值

A中接收通知
NotificationCenter.addobserve(A).name("NAME").selector(noti:)
-noti:(noti)noti{
noti.obj//接收到值
}
B中发送通知
NotificationCenter.postName("NAME").obj(obj)

单例传值

//用单例中的值更新A的值
A.property = global.singleton.property;
//B中值改变 把值赋给单例
global.singleton.property = B.property;

这篇关于objective-c - 关于iOS的几种传值问题。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆