不管如何,先感谢 KVO的实现原理和具体应用 让我了解了观察者模式。
事情的起因无非不就是需求,大概就是三个controllerA、B、C,三者间存在跳转关系A->B->C,当C的Num刷新后更新后台数据,A要向后台获取数据并刷新UI。
首先我就想到了几种数据传递方式:
1、直接实例化,给controller赋值。
UIViewController *B = [[UIViewController alloc] init];
B.NUM = 1;
[self.navigationController pushViewController:B animated:YES];
这个只适合跳转页面时传值。
2、利用委托delegate。在B中声名委托,并在A中设置B的委托者为A,即B.delegate = A。然后在A中实现B的委托方法。最后实现B往A中传值。
一般这种方式都是B向A传值,当然A也可以利用委托向B传值,但是一般业务情况下,都是直接用1的方式传值。
3、block传值(块传值),这种传值方法很常用,十分灵活,但针对A