Iphone 如何将阵列从一个视图控制器传递到另一个视图控制器?

Iphone 如何将阵列从一个视图控制器传递到另一个视图控制器?,iphone,Iphone,我正在开发一个应用程序。在其中,我需要将一个数组从一个视图控制器传递到另一个视图控制器 我怎样才能做到这一点呢?只需在.h文件中声明它们,并为它们分配非原子属性&retain,然后合成它们。现在创建类的对象并访问该数组:)非常简单:)您可以通过在第二个viewcontrollers.h文件中定义数组属性来实现,如: @interface SecondViewController : UIViewController @property(nonatomic, strong)NSArray *ar

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


我怎样才能做到这一点呢?

只需在.h文件中声明它们,并为它们分配非原子属性&retain,然后合成它们。现在创建类的对象并访问该数组:)非常简单:)

您可以通过在第二个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

我不会使用
return\u theArray直接返回数组的引用。这样做通常是一种糟糕的编码设计。更好的解决方案是:

在第一个控制器的.h文件中:

@interface FirstViewController : UIViewController
{
    NSArray *_theArray;
}

- (NSArray *)theArray;
在第一个控制器的.m文件中:

- (NSArray *)theArray
{
    return [NSArray arrayWithArray:_theArray];
}
无论您想在第二个控制器的代码中:

NSArray *fooArray = [firstControllerReference theArray];
请注意,在此示例中,存储在
fooArray
中的对象引用与存储在
theArray
中的对象引用相同。因此,如果在
fooArray
中修改对象,它也将在swift中的
阵列中修改

第一个视图控制器 在准备中

var yourArray = [String]()
yourArray.append("String Value")
   let testEventAddGroupsViewController = segue.destination as! 
TestEventAddGroupsViewController
        testEventAddGroupsViewController.testEvent = yourArray
在第二个视图中,将控制器作为全局变量

var testEvent = [String]()

签出这个,它将帮助你。[[1]:[Same question][1]这是字符串。您将其用于数组。[1]:在firstview控制器中,我获得了数组中的数据,如数组=[[results valueForKey:@“names”]retain]。因此,我以您的方式使用此数组。但在第二个viewcontroller中,我得到了错误,如程序接收到的信号:“EXC_BAD_ACCESS”。请尝试@property(非原子,retain)NSArray*数组;而不是赋值。