在堆叠视图之间传递数据

时间:2011-03-12 12:40:02

标签: iphone xcode ios uiview navigationcontroller

在我的应用程序中,我有几个视图..其中一些视图是使用导航控制器推送和弹出的。在某些视图中,我有一个表视图,其中每个单元格都是一个视图本身,所以当选择单元格时,执行此代码:

DetailView *detailViewController = [[Detailview alloc] initWithNibName:@"Detailview" bundle:nil];
    [self.navigationController pushViewController:detailViewController animated:YES];
    [detailViewController release];

在详细视图中,当点击特定按钮(例如后退/取消按钮)时,将执行此代码:

[self.navigationController popViewControllerAnimated:YES];

我想要的是将数据从detailview传递到它之前的视图(初始化它的视图)。到目前为止,我已经实现了一个名为“Globals.h”的类,其中我放置了我想要传递的数据,并在这些数据变量上使用“extern”以确保它对于许多类来说是全局的,并且它有效正常。但我不认为这是适当的方式。还有其他好办法吗?

提前致谢:)

1 个答案:

答案 0 :(得分:7)

解决问题的一种简单方法是:

DetailView *detailViewController = [[Detailview alloc] initWithNibName:@"Detailview" bundle:nil];
detailViewController.controller = self;
[self.navigationController pushViewController:detailViewController animated:YES];
[detailViewController release];

然后在详细视图中:

self.controller.data = data;
[self.navigationController popViewControllerAnimated:YES];

我希望你知道如何创建属性,否则请给我发表评论。