注:此处视图为广义上的视图,不限于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。

posted on 2018-03-28 14:10  ximenchuixie  阅读(186)  评论(0编辑  收藏  举报