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*数组;而不是赋值。