iOS利用Block传值
2016-08-05 16:49
417 查看
ViewController.h 需要实现
#import <UIKit/UIKit.h>
@interface ViewController :
UIViewController
- (void)sendMessage:(void(^)(NSString *))blc;
@end
ViewController.m里面需要实现
#import "ViewController.h"
#import "secondeViewController.h"
@interface
ViewController ()
{
void (^tempBloc)(NSString *);
UITextField *textField;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super
viewDidLoad];
UIButton *button = [UIButton
new];
button.backgroundColor = [UIColor
redColor];
button.frame =
CGRectMake(100,
100, 50,
50);
[button addTarget:self
action:@selector(gotoSecondeViewController)
forControlEvents:UIControlEventTouchUpInside];
[self.view
addSubview:button];
textField = [UITextField
new];
textField.frame =
CGRectMake(100,
300, 200,
50);
[self.view
addSubview:textField];
}
- (void)gotoSecondeViewController{
secondeViewController *KsecondeViewController = [secondeViewController
new];
KsecondeViewController.VC =
self;
[self
presentViewController:KsecondeViewController
animated:YES
completion:^{
}];
if (tempBloc) {
tempBloc(textField.text);
}
}
- (void)sendMessage:(void (^)(NSString *))blc{
tempBloc = ^(NSString *str){
blc(str);
};
}
secondeViewController.h里面需要实现
#import <UIKit/UIKit.h>
#import "ViewController.h"
@interface secondeViewController :
UIViewController
@property (nonatomic,strong)ViewController
*VC;
@end
secondeViewController.m里面需要实现
#import "secondeViewController.h"
#import "ViewController.h"
@interface
secondeViewController ()
@end
@implementation secondeViewController
- (void)viewDidLoad {
[super
viewDidLoad];
self.view.backgroundColor = [UIColor
whiteColor];
UILabel *lable = [UILabel
new];
lable.backgroundColor = [UIColor
greenColor];
lable.frame =
CGRectMake(100,
100, 200,
50);
[self.view
addSubview:lable];
[_VC
sendMessage:^(NSString *str) {
lable.text = str;
}];
}
#import <UIKit/UIKit.h>
@interface ViewController :
UIViewController
- (void)sendMessage:(void(^)(NSString *))blc;
@end
ViewController.m里面需要实现
#import "ViewController.h"
#import "secondeViewController.h"
@interface
ViewController ()
{
void (^tempBloc)(NSString *);
UITextField *textField;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super
viewDidLoad];
UIButton *button = [UIButton
new];
button.backgroundColor = [UIColor
redColor];
button.frame =
CGRectMake(100,
100, 50,
50);
[button addTarget:self
action:@selector(gotoSecondeViewController)
forControlEvents:UIControlEventTouchUpInside];
[self.view
addSubview:button];
textField = [UITextField
new];
textField.frame =
CGRectMake(100,
300, 200,
50);
[self.view
addSubview:textField];
}
- (void)gotoSecondeViewController{
secondeViewController *KsecondeViewController = [secondeViewController
new];
KsecondeViewController.VC =
self;
[self
presentViewController:KsecondeViewController
animated:YES
completion:^{
}];
if (tempBloc) {
tempBloc(textField.text);
}
}
- (void)sendMessage:(void (^)(NSString *))blc{
tempBloc = ^(NSString *str){
blc(str);
};
}
secondeViewController.h里面需要实现
#import <UIKit/UIKit.h>
#import "ViewController.h"
@interface secondeViewController :
UIViewController
@property (nonatomic,strong)ViewController
*VC;
@end
secondeViewController.m里面需要实现
#import "secondeViewController.h"
#import "ViewController.h"
@interface
secondeViewController ()
@end
@implementation secondeViewController
- (void)viewDidLoad {
[super
viewDidLoad];
self.view.backgroundColor = [UIColor
whiteColor];
UILabel *lable = [UILabel
new];
lable.backgroundColor = [UIColor
greenColor];
lable.frame =
CGRectMake(100,
100, 200,
50);
[self.view
addSubview:lable];
[_VC
sendMessage:^(NSString *str) {
lable.text = str;
}];
}
相关文章推荐
- iOS -- textfield输入时键盘升起,改变view高度
- iOS学习笔记之异步图片下载
- iOS_带发光效果的Label
- iOS项目开发基础
- iOS Xcode Error 集锦
- iOS判断是否插入耳机
- iOS API更新
- iOS--Invocation创建
- 学习IOS的第五天
- ios 去除字符串首尾空格、换行
- iOS--异常处理
- iOS 自定义网页内容下载器
- Pch文件如何配置?
- iOS推送(利用极光推送)
- iOS RTMP推流和拉流第三方框架
- iOS开发之蓝牙总结
- [置顶] iOS调用WebService(SOAP接口)
- ios时间戳13位转换
- iOS开发使用的证书和文件有哪些?
- 《Motion Design for iOS》(三十八)