Block两个界面之间传值(菜鸟版)
void 我是新手我是菜逼!错了请指正!
作为一个菜鸟,学习中被控制器跳转、传值折腾的不清,先说传值。
作为一个新手有必要先解释下控制器跳转,不跳转的问题...我爬了好久的坑。
[self.navigationController pushViewController:VC animated:YES];
这句代码就是push个控制器(指定控制器),也就是跳转!***前提是当前控制器必须有导航控制器(NavigationController)!不要问我是怎么知道的。。。
添加导航控制器,这个可以代码,也可以用故事板(会这个的当我没说。。。)
下面说正事用Block传值:
练习:先建2个控制器,当然还有导航控制器~~名字自己分的清楚那个是那个。
当前控制器:默认 第二个控制器:NextVC
当前控制器:为省事没敲代码,连线
共两个控件:button 和 label
默认控制器:导入第二个控制器头文件
Button点击方法:
第一行代码:初始化第二个控制器(好像挺多余)。
第二行代码:label设置文字,也就是第二个控制器block传的值(NSString)。
第三行代码: push控制器。
第二个控制器:
首先在.h文件声明一个Block用来传值(类似接口)代码如下:这个NSString *text 就是要传的
@property(nonatomic,copy)void(^NextVCBlock)(NSString*text);
在.m文件 添加两个控件 Button和textfiled
self.textfield就是输入框了
-(void)popVCbtn:(id)sender{
if(self.NextVCBlock) {
self.NextVCBlock(self.textfield.text);
}
[self.navigationController popViewController Animated:YES];
}