您的位置:首页 > 移动开发 > IOS开发

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;

    }];    

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: