如何将数组从一个视图控制器传递到另一个?

时间:2011-07-13 11:23:41

标签: iphone

我正在开发一个应用程序。在其中我需要将一个数组从一个视图控制器传递给另一个视图控制器。

我该怎么做?

4 个答案:

答案 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