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