objective-c - 關於iOS的幾個傳值問題。
怪我咯
怪我咯 2017-05-02 09:20:15
0
1
347

在學習iOS的過程中,困擾我的一個問題就是 控制器頁之間的傳值問題,例如順傳、逆傳。

傳值的方式有 代理傳值、block傳值、還有通知傳值,有哪位好心大神能給講一講。

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回覆(1)
Ty80

順傳一般是直接傳值

代理傳值

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;

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!