IOS(UI)_Block傳值

ViewController.m

點擊事件:

- (IBAction)pushBtnAction:(id)sender
{

    BViewController *bViewController =[[BViewController alloc]initWithNibName:@"BViewController" bundle:[NSBundle mainBundle]];

    [self.navigationController pushViewController:bViewController animated:YES];

    //哪個頁面需要值,哪個頁面實現方法
    bViewController.block = ^(NSString *string){

        self.label.text = string;
    };


}

先創建BViewController.h

定義了結構體:

#import <UIKit/UIKit.h>

//定義block
typedef void(^transferValue)(NSString *string);

@interface BViewController : UIViewController

@property (weak, nonatomic) IBOutlet UITextField *textField;

//把block作爲一個屬性,此處必須要用copy,因爲默認情況下,block是存檔在棧中,可能隨時被回收,需要copy操作
@property (nonatomic,copy)transferValue block;

@end

BViewController.m

- (IBAction)backBtnAction:(id)sender {

    self.block(self.textField.text);
    [self.navigationController popViewControllerAnimated:YES];

}

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章