Objective-C:场景间传递数据

一、使用公共属性传值

适合情景:IB图形创建segue

STEP1:在目标视图定义(id类型)公共属性A
@property  ( weak nonatomic id  A;

STEP2:公共属性A指向源视图 (在源视图的切换方法中定义)

源视图:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{  
 
 ((PickViewController *)segue.destinationViewController).A=self;

}


STEP3:目标视图中使用A访问源视图的属性和方法
目标视图:

- (IBAction)setDate:(id)sender {    

  [(ViewController *)self.A setDate:((UIDatePicker *)sender).date];  

}


PS:必须将A强制转换为源视图的类,才能访问源视图

二、使用视图的presenting和presented属性

适合情景:通用,只要能获取,就可以访问对象内的属性和方法

1、self.presentingViewController:源视图的实例对象
在源视图:一直能获取
在目标视图:需要切换完成(目标视图viewWillAppear)才能获取


2、self.presentedViewController:目标视图的实例对象
在源视图:需要切换完成(目标视图viewWillAppear)才能获取
在目标视图:需要切换完成(目标视图viewWillAppear)才能获取



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值