84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
在學習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;
順傳一般是直接傳值
代理傳值
block傳值
通知傳值
單例傳值