在ios里页面之间的传值是很平常的,也是很普通的。以前用过代理,感觉那个对于一些小的传值不太灵活,有点杀鸡用牛刀了,反正我用了这个block就觉得一级棒
那就上代码吧
好了那就是两个页面。我们分别叫A和B,想要的效果就是,在A里做操作,B里也可以感受到。
首先想要让B感受到温暖,A里得有个发射装置。我们在A里操作的时候,调一下A的发射装置,具体往哪里走我们不关心(其实在B里面,一目了然)。
在A里的.h文件这样定义
//声明。叫Ablock,可以传进来的值就是string类型的aa
typedef void (^Ablock)(NSString *aa)
//这里定义一个,方便在B的时候操作
@property(nonatomic, strong)Ablock block;
A里面.m文件这样写
_block("我就过去了?");//这个就直接过去了,去了引用A的B里了
好了看B的写法
只需要在B的.m文件中调用A就行
A *a = [[A alloc] init];
__weak typeof(A)*a1 = a;//这个意思是可以在B里调用A的方法 [a1 方法名]
a.block = ^(NSString *str){
NSLog(str);
}
常用到的地方就是咱们网络请求了,请求出来值以后呢,怎么把值传进咱们的页面呢?就用这个回调就好啦!就酱