我正在开发一个应用程序。在其中我需要将一个数组从一个视图控制器传递给另一个视图控制器。
我该怎么做?
答案 0 :(得分:3)
你可以通过在第二个viewcontrollers .h文件中定义一个数组属性来实现,如:
@interface SecondViewController : UIViewController
@property(nonatomic, strong)NSArray *array;
@end
现在在FirstViewconrtoller中传递它
SecondViewController *controller = [[SecondViewController alloc]....]
controller.array = yourArray.//the array you want to pass
答案 1 :(得分:1)
我不会使用return _theArray;
直接返回数组的引用。这通常是一个糟糕的编码设计。更好的解决方案是:
在你的第一个控制器的.h文件中:
@interface FirstViewController : UIViewController
{
NSArray *_theArray;
}
- (NSArray *)theArray;
在第一个控制器的.m文件中:
- (NSArray *)theArray
{
return [NSArray arrayWithArray:_theArray];
}
在第二个控制器代码中的任何地方:
NSArray *fooArray = [firstControllerReference theArray];
请注意,在此示例中,fooArray
中存储的对象的引用与theArray
中存储的对象的引用相同。因此,如果您在fooArray
中修改对象,则也会在theArray
中对其进行修改。
答案 2 :(得分:0)
只需将它们声明为.h文件&为他们分配属性非原子&保留然后合成它们。现在创建类&的对象访问该数组:)非常简单:)
答案 3 :(得分:0)
迅速为您
第一个Viewcontroller 在准备中
>>>list(zip('pale', 'kale'))
[('p', 'k'), ('a', 'a'), ('l', 'l'), ('e', 'e')]
在第二个视图控制器中作为全局变量
var yourArray = [String]()
yourArray.append("String Value")
let testEventAddGroupsViewController = segue.destination as!
TestEventAddGroupsViewController
testEventAddGroupsViewController.testEvent = yourArray