iOS 导航控制器下级向上级传值,pop反向传值

本文介绍了在iOS应用中,如何在导航控制器(UINavigationController)的子控制器(B)中通过Block将数据反向传递回父控制器(A)。当A push到B,B执行pop操作时,可以通过在B中定义Block并将数据作为参数传递,然后在A的viewWillAppear方法中接收并赋值。确保在A中接收到数据后调用相应接口更新视图。

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

UINavigationController  A  push B B pop 回到 A,在 B的.h中定义Block,把要传的数据通过block参数进行传值,B中要传值的地方引用Block变量-要传的数据-),然后pop

(1)在 A 中的 -(void)viewWillAppear:(BOOL)animated  方法中实现B block,并且在block中进行属性的赋值,赋完值之后一定要调用数据请求的方法——A中加载数据的接口属性要和B回传的属性是一样的

(2)18.2.11 修改添加

在A中push到B的时候,直接给B的.h中的Block变量进行实现(这时候代码是不会走Block里面的逻辑实现的,只有在B中自己引用实现自己的Block时才会调用A中的Block内的逻辑实现)


在B的 .h 文件中 声明block 

@property (nonatomic,copyvoid(^popVCBlock)(NSDictionary *vegDic);

 在B的 .m 文件中 在要跳转的方法事件里


    self.popVCBlock(sishDic);

    [self.navigationControllerpopViewControllerAnimated:YES];


在 A 的.m文件的 -( void)viewWillAppear:( BOOL)animated   的方法中

  BViewController *B = [[BViewControlleralloc] init];

    B.popVCBlock = ^(NSDictionary *vegDic){

        self.VEGDic =VEGDic;

        [selfgetSellerList];一定要调用数据请求的方法

    };

A中push的时候的实现

BViewController *B = [[BViewControllerallocinit];

    B.popVCBlock = ^(NSDictionary *vegDic){

        self.VEGDic =VEGDic;

        [selfgetSellerList];一定要调用数据请求的方法

    };

[ self . navigationController pushViewContrller:B animated:YES ]; 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值