使用数组中的数据更新表视图?

时间:2011-04-11 17:43:22

标签: objective-c xcode uitableview

我正在创建一个带有两个视图控制器的Ipad。一个视图控制器为FirstViewController,另一个为SecondViewController。在FirstViewController中,我用数字填充数组。现在在我的SecondViewCOntroller中,我有一个表视图。我想将我在FirstViewController中创建的数组放入我的SecondViewController表视图中?我该怎么做呢?请帮帮我!

3 个答案:

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