各种传值方法
1、正向传值
a、通过属性传值
在需要数据的类里 声明属性
上一个页面传值
b、自定义函数 传值
调用函数
Next__ViewController *next = [[Next__ViewController alloc]initWithList:@[@"葫芦娃", @"金刚", @"奥特曼"]];
c、KVC 传值
通过全局变量 或属性 传值
// KVC 的key是 属性 或者全局变量 的名字
// KVC是通过key 找到属性 或 全局变量 的值
[colorView setValue:[UIColor purpleColor] forKey:@”bgColor”];
d、KVO 传值
2、通知
发送通知
NSDictionary *dic = @{@"name":@"金刚", @"tel":@"13970663456"};
sleep(5);
// 通知 不确定什么时候完成取数值的时候 (不知道什么完成操作的时候)
// 或者 发送给多个对象是
// 反向传值
[[NSNotificationCenter defaultCenter] postNotificationName:@"didRespinse" object:nil userInfo:dic];
接受通知
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(reloadDataMessage:) name:@"didRespinse" object:nil];
传值
label.text = [NSString stringWithFormat:@"%@\n%@", not.userInfo[@"name"], not.userInfo[@"tel"]];
3、闭包 block
// 闭包的声明
//返回值类型 (闭包的名字)(参数列表);
// block 常用于反向传值
// 闭包的名字 = ^ (参数列表) { 具体实现的内容 };
// 调用
// 闭包的名字();
1、 声明
void (^qqqq)(int num, NSString *string);
2、 闭包的实现
qqqq = ^(int num, NSString *string){
NSLog(@”%d %@”, num, string);
};
3、 闭包的调用
qqqq (123, @”456”);