申明:此为本人学习笔记,若有纰漏错误之处的可留言共同探讨
/*
block传值思路
假设:我们要在第二个VC(ViewController)传值到第一个VC,那么我们应该这么做
1 在第二个VC声明block,并且给它数据
2 在第一个VC初始化block
3 在第二个VC调用block
这里要注意的是,block不要在加载的时候给它赋值,否则会崩溃。使用的时候也不能在加载的时候使用(也根本不可能在加载的时候就能使用),否则也会奔溃
*/
关键代码如下:
VC1
#pragma mark - buttonClick
- (IBAction)myButton:(UIButton *)sender
{
NextViewController *next = [[NextViewController alloc]init];
[self presentViewController:next animated:YES completion:nil];
// 初始化
next.myBlock = ^void(NSString* string)
{
self.myLabel.text = string;
};
}
VC2
// 声明
@property(nonatomic,strong)void(^myBlock)(NSString*);
#pragma mark - buttonClick
- (IBAction)myButton:(UIButton *)sender
{
// 调用
_myBlock(self.myLabel.text);
[self dismissViewControllerAnimated:YES completion:nil];
}
本文介绍了一种使用Block在iOS的两个ViewController间传递值的方法。通过在第一个ViewController中初始化Block,并在第二个ViewController中声明及调用它来实现跨ViewController的数据传递。文章提供了具体的Swift代码示例并强调了Block使用的注意事项。
2350

被折叠的 条评论
为什么被折叠?



