block使用步骤

block 传值实现步骤:

其中:viewcontroller 为接受值的控制器,TestViewController 为输入值得控制器,block实现界面传值。

(1)定义block---TestViewController.h文件中

#import 
@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

你可能感兴趣的:(block使用步骤)