我正在创建一个带有两个视图控制器的Ipad。一个视图控制器为FirstViewController
,另一个为SecondViewController
。在FirstViewController
中,我用数字填充数组。现在在我的SecondViewCOntroller
中,我有一个表视图。我想将我在FirstViewController
中创建的数组放入我的SecondViewController
表视图中?我该怎么做呢?请帮帮我!
答案 0 :(得分:1)
您需要在SecondViewController中引用NSArray对象,您可以通过委托来执行此操作。委托是一个实例变量,它包含指向委托的指针,在本例中是FirstviewController。然后在FirstViewController中为NSArray添加一个属性(如果它是一个实例变量),并在secondviewController中调用delegate.someArrayName
答案 1 :(得分:1)
这种方法打破了MVC。您不能将数据数组作为FirstViewController
中的实例变量。您必须将数据存储在其他类(MVC的M部分)中。您从FirstViewController
(V部分)填充M部分,然后从SecondViewController
访问填充的M部分。这样您就不会依赖于这两个控制器如何相互关联(父/子或兄弟姐妹或您可能想到的任何其他层次结构)。
我能想到的最简单的方法是将序列化数组存储在plist文件中。首先存储文件并在第二个视图控制器中访问它。
答案 2 :(得分:1)
最直接的方法是在SecondViewController.h上创建一个属性,如:
@property (nonatomic, retain) NSMutableArray *yourArray;
并在SecondViewController.m中输入:
@synthesize yourArray;
此时您已在SecondViewController上创建了一个属性。现在,当您打算打开Second View Controller时,只需创建其实例并执行以下操作:
secondViewController.yourArray = array;
[self.navigationController pushViewController:secondViewController];