从容器视图中抓取数据

时间:2014-05-19 01:40:26

标签: ios objective-c

UIViewController A 中,我有一个容器视图嵌入式UITableViewController B 。换句话说,ViewController B 位于ViewController A 的容器视图中。 A 只包含一个导航栏和一个" next"视图底部的UIButton。我需要 B UITextField的数据通过 A .m中的prepareForSegue:方法发送,如何将包含 B NSMutableArray的数据的UITextfield A 共享?

1 个答案:

答案 0 :(得分:1)

无法在整个segue中发送数据,因为在用户与文本字段进行任何交互之前,只要控制器被实例化,就会执行segue。有几种方法可以做到这一点,但最简单的方法是使用self.parentViewController访问它,在A中设置一个数组,使其等于B中的数组。以下代码在B中(确保将A.h导入B.m文件,

ControllerA *aController = self.parentViewController;
aController.arrayToGet = self.arrayToPass;

如果您愿意,可以在B中创建一个指向A(@property(强,非原子)ControllerA * pointerToA;)的属性,并在prepareForSegue中设置其值。然后,您可以使用它而不是self.parentViewController来访问任何A的属性或方法

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    ControllerB *bVC = segue.destinationViewController;
    bVC.pointerToA = self;
}