oc中页面传值问题

本文探讨了在iOS应用中如何实现页面间的值传递,包括从第一个界面传值到第二个界面,以及从第二个界面回传值到第一个界面。主要介绍了属性传值、block、代理和消息通知等方法,强调了不同方法的适用场景和优缺点,如属性传值的非实时性,代理和block的灵活性等。
摘要由CSDN通过智能技术生成

    当我们需要通过第一个界面传值给第二个界面可以通过属性传值,单例,代理,block,消息通知等方法进行传值。当我们需要从第二个界面传值到第一个界面的时候通过单例,代理,block,消息通知等方法进行传值。下面主要介绍的是第二个界面传值到第一个界面。

属性传值:

    如下所示,通过模态进行两个页面之间的传值 ,首先建立两个类 A类和B类,在B类中声明一个属性:

 

#import <UIKit/UIKit.h>


@interface ViewControllerB :UIViewController


@property (nonatomic,copy)NSString * str;

@end


 在A类包含B类头文件,在A类中获得B类属性str,进行赋值。当B类使用属性str时就可以达到传值效果。但是这样传值缺点是没有及时性,不能及时的把值传递过去。


Block传值:
 Block 具有回调机制,在我的理解当中比如方法实现由三个步骤,声明,实现,调用。我们通过类似于这样的步骤,对Block进行解剖。在这里要说明Block不是一个方法,它是一个函数体。在B类中我们定义和声明一个Block:

#import <UIKit/UIKit.h>


typedefvoid (^myBlock)(NSString * str);

@interface</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值