84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
在学习iOS的过程中,困扰我的一个问题就是 控制器页面之间的传值问题,例如顺传、逆传。
传值的方式有 代理传值、block传值、还有通知传值,有哪位好心大神能给讲一讲。
走同样的路,发现不同的人生
Shunt transmission usually means passing the value directly
Agent value transfer
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 value transfer
A //A中实现B的block的代码块 B.block = ^(obj){ }; B//声明代码块 typedef BBlock property-block //当B中调用 self.block(obj); 就会调用A中以实现的代码块实现传值
Notification value transfer
A中接收通知 NotificationCenter.addobserve(A).name("NAME").selector(noti:) -noti:(noti)noti{ noti.obj//接收到值 } B中发送通知 NotificationCenter.postName("NAME").obj(obj)
Single instance value passing
//用单例中的值更新A的值 A.property = global.singleton.property; //B中值改变 把值赋给单例 global.singleton.property = B.property;
Shunt transmission usually means passing the value directly
Agent value transfer
block value transfer
Notification value transfer
Single instance value passing