IOS(UI)_Block传值

本文介绍了一种在iOS应用中使用Swift通过视图控制器传递数据的方法。具体演示了如何在一个视图控制器中设置一个Block类型属性来接收另一个视图控制器传过来的数据,并通过导航控制器完成页面间的跳转及数据回传。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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];

}

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值