说,我有两个视图控制器A和B
在B中,我想改变A的状态使用iOS,我有两种方法可以做到这一点
方法一:
在中,调用A.change()Methed2:
使用NotificationCenter
首选哪种方式?
答案 0 :(得分:0)
这两种方法都有自己的目的。根据您的具体情况,您将决定实施哪种方法。
方法1:
它的工作方式类似于一对一的关系。只访问一个对象。例如,更改属性或调用对象的方法。
方法2:
它的工作方式类似于1对多关系。它播放该活动,并且将通知正在收听该活动的所有人。例如UIKeyboardDidHideNotification
或UIKeyboardDidShowNotification
,任意数量的对象都可以开始侦听这些通知,当这些事件发生时,将同时通知所有这些对象。
在你的情况下,我建议你做一个delegate
。分配B.delegate = A
。致电
[B.delegate performSelector:@selector(change)];