block 传值实现步骤:
其中:viewcontroller 为接受值的控制器,TestViewController 为输入值得控制器,block实现界面传值。
(1)定义block---TestViewController.h文件中
#import <UIKit/UIKit.h>
@interface TestViewController : UIViewController
// 谁是值的 出发点 就在谁 定义 block
//// 1 . block 定义位置
@property (nonatomic, copy) void (^myBlock)(NSString * str);
@end
(2)实现block--- ViewController.h文件中
// 当前控制器 即将被 其他控制器 取代的 时候调用
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
NSLog(@"调用了");
TestViewController * vc = segue.destinationViewController;// 目标视图控制器
// 跳转离开时 执行到此 ========
// 跳转离开时 不调用 ,跳转回来 时才调用
//// block 的实现
vc.myBlock = ^ (NSString * str)
{
// 实时更新
NSLog(@"实时更新吗 ::: %@",self.label.text);
self.label.text = str;
};
}
(3)调用block---TestViewController.m文件中
- (IBAction)btnClick
{
if (self.myBlock)
{
//// block 的调用
self.myBlock(self.textField.text);
}
[self.navigationController popViewControllerAnimated:YES];
}
@end