注:此处视图为广义上的视图,不限于View,ViewController之类的都算。
大致分为三种,Notification, delegate, block
例:
假设要在A视图中调起B视图,B视图有过一些操作后将参数回传给A
当然在A调起B的时候B如果需要某些参数,那么A将参数直接作为属性赋值给B即可,这里主要讨论B回传参数给A的情况。
Notification:B在执行操作完直接post一个Notification,A中设置这个Notification的接收函数。
delegate: B声明一个protocol,A来实现之,B.delegate = A,本质上还是把A作为参数传给B
Block: B视图对外暴露一个block,比如A去展示B,在初始化B的时候可以给block赋值,block中调用A的一些方法,这样B在调用这个block的时候就能够把数据传给A;不过本质上也是把A作为参数传给B的block,B持有这个block也就间接持有了A,所以B还是间接持有了A。