84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
在学习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传值
通知传值
单例传值