如何从另一个视图控制器访问一个视图控制器中的变量?

时间:2011-05-29 07:03:40

标签: iphone ios uinavigationcontroller uitableview

在我的UINavtigationController应用程序中,我有一个用户在UITableViewController中选择一个值,一旦完成,它们将被发送回之前必须显示该值的UITableViewController。我期待的问题是,一旦视图被“弹出”,我假设它的viewUnload被调用,摆脱了数组,使得它在另一个视图控制器中无法访问。

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

您需要使用任何方法将新值传递给didSelectRowIndex函数中的前一个控制器

1-> 使用NSUserDefault

iPhone Programming Tutorial – Saving/Retrieving Data Using NSUserDefaults

2-> 使用Delegate概念。

3-> 您还可以使用UINavigationController方法访问之前的 ViewController

答案 1 :(得分:1)

您可以通过self.parentViewController访问第一个视图控制器,因此最好在第一个视图中合成一个数组,然后在第二个视图中调用popViewControllerAnimated:之前设置它。基本上它看起来像这样:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    [self.parentViewController setNewArray:myArray];
    [self.navigationController popViewControllerAnimated:YES];
}

确保在第一个视图的头文件中指定NSArray *newArray;@property (nonatomic, retain) NSArray *newArray并在实现文件中合成

答案 2 :(得分:0)

您可以使用NSUserDefaults来实现相同的