一、使用公共属性传值
适合情景:IB图形创建segue
STEP1:在目标视图定义(id类型)公共属性A
@property ( weak , nonatomic ) id A;
STEP2:公共属性A指向源视图 (在源视图的切换方法中定义)
源视图:
STEP3:目标视图中使用A访问源视图的属性和方法
目标视图:
PS:必须将A强制转换为源视图的类,才能访问源视图
二、使用视图的presenting和presented属性
适合情景:通用,只要能获取,就可以访问对象内的属性和方法
1、self.presentingViewController:源视图的实例对象
在源视图:一直能获取
在目标视图:需要切换完成(目标视图viewWillAppear)才能获取
2、self.presentedViewController:目标视图的实例对象
在源视图:需要切换完成(目标视图viewWillAppear)才能获取
在目标视图:需要切换完成(目标视图viewWillAppear)才能获取
适合情景: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)才能获取