如何在视图控制器之间传递数组?

问题描述:

我正在构建一个使用TabBar控制器的应用程序,其中一个视图控制器设置了一个NSMurableArray(并可能被修改)。然后我需要使用相同的数组来填充其他视图中的一个表格。我已经研究过使用单例(已经在这个网站上提供了这个问题的答案),但没有多少运气。如何在视图控制器之间传递数组?

单身人士是最好的选择,还是有更好的方法?如果可能,我会很感激任何帮助/示例?

你有这样做的几种选择,这里有2 ...

1)有NSMutableArray的是一个视图控制器的属性,以便其他人可以像viewController1.mutableArray访问它。只需将@property (nonatomic, retain) NSMutableArray *mutableArray添加到您的viewController类(使用任何您想要的名称)即可。

2.)将数组通过一个方法从第一个viewController传递给另一个,并在另一个类中保持对该数组的引用。

+0

感谢尼特雷克斯,提到你的第一个建议,这似乎对我最有意义我不知道如何从第二个视图控制器中获得对视图控制器的引用? – Nathan 2011-02-06 19:27:23

您可以将控制器'相互连接',就像将'ui元素附加到控制器'一样。例如,声明变量

IBOutlet ReferencedController *referencedMenu; 

然后在Interface Builder中在引用和引用控制器之间画一条线。

我理解正确吗?

感谢您的帮助,这到底是怎么我都做到了:

的UIViewController * tmpNamesListVC = [self.tabBarController.viewControllers objectAtIndex:1]; self.names = [tmpNamesListVC names];

当它建立我得到'UIViewController可能不会响应 - 名称'的警告,但一切编译和运行,因为它应该。