我一直在尝试使用块传递数据
向后发送数据
在 secondViewController .h文件中声明阻止
@property (nonatomic, copy)void(^myBlock)(NSString *);
调用块,无论您需要从secondViewController的.m文件传递数据
myBlock(@"this will displayed in firstViewController");
3.在firstViewController .m文件中导入.h文件,并将您的块定义为
secondViewController *ref =[[secondViewController alloc ]init];
ref.myBlock =^void(NSString *data)
{
self.labelOffirstviewcontroller=data;
};
在运行时我得到EXC错误访问错误任何人都可以将此问题排序吗?
答案 0 :(得分:0)
这里[[secondViewController alloc ]init];
您正在创建一个视图控制器的新实例,因此您可以在其上设置块,但随后它不会被使用并被销毁。您需要使用prepareForSegue
或类似的,具体取决于您显示VC的方式,以便在正确的实例上设置块。
VC2通常应该在调用之前检查块是否为nil。
该属性也应该是强大的,而不是复制。无论如何ARC都做对了。
答案 1 :(得分:0)
我找到了传递数据的方法。
secondViewController *ref =[[secondViewController alloc ]init];
ref.myBlock =^void(NSString *data)
{
self.labelOffirstviewcontroller=data;
};
这个代码应该在我们推送viewcontroller
的地方给出