界面通信之block传值

block传值有两种方式

⽅式⼀: 使⽤block属性实现回调传值 

⽅式⼆: 在⽅法中定义block实现回调传值

 

方式一比较便于理解而且常用,下面介绍方式一是如何传值的

使用block属性传值和代理传值的步骤基本上是一样的

复制代码
typedef void(^BaDa)(NSString *, UIColor *);

@interface SecondViewController : UIViewController
@property (nonatomic, retain) UITextField *textField;

//Block声明成属性,一定要使用copy
@property (nonatomic, copy) BaDa bada;

@end
复制代码
复制代码
- (void)back {
    
    //执行Block
    if (self.bada != nil) {
        self.bada(self.textField.text, self.view.backgroundColor);
    }
    
    
    [self.navigationController popViewControllerAnimated:YES];
    
}
复制代码
复制代码
- (void)next {
    SecondViewController *secondVC = [[SecondViewController alloc] init];
    //对block进行实现
    secondVC.bada = ^(NSString *str, UIColor *color) {
        self.label.text = str;
        self.view.backgroundColor = color;
    };
    [self.navigationController pushViewController:secondVC animated:YES];
    [secondVC release];
    
    
}
复制代码

 

posted @   _Mo  阅读(175)  评论(0编辑  收藏  举报
编辑推荐:
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
阅读排行:
· 手把手教你更优雅的享受 DeepSeek
· AI工具推荐:领先的开源 AI 代码助手——Continue
· 探秘Transformer系列之(2)---总体架构
· V-Control:一个基于 .NET MAUI 的开箱即用的UI组件库
· 乌龟冬眠箱湿度监控系统和AI辅助建议功能的实现
点击右上角即可分享
微信分享提示