我正在构建一个应用程序,它首先加载一个“下载”视图控制器,该控制器通过API调用获取一组数据。一旦返回数据,应用程序就会隐藏这个视图控制器的视图,并加载一个标签栏控制器,其中包含两个导航控制器。
推到第一个导航控制器上的第一个视图是一个表视图。正是在这个表视图中,我需要在初始的“下载”视图控制器中显示从API调用中检索到的数据。
有人能给我解释一下如何在“下载”和表视图控制器之间传递这些数据吗?考虑到他们并不了解对方。
一个重要的注意事项是,必须在加载选项卡栏控制器之前获取数据,因此不可能简单地从将要使用它的表视图控制器中获取数据。
发布于 2009-06-24 04:09:00
您的数据从属于应用程序,因此应用程序委托可以保留指向数据的指针,然后两个视图可以使用[[UIApplication sharedApplication] delegate]
访问它。
另一种选择是在下载完成时向应用程序代理发送一条带有数据的消息。我假设你已经在做这样的事情了,因为你说应用程序隐藏了视图控制器的视图,而不是视图控制器隐藏自己。不知何故,它必须知道下载已完成。因此,在下载控制器中:
- (void) downloadFinished {
[listener downloadFinished:data];
}
在您的应用程序委托中(前面代码片段中的listener
):
- (void) downloadFinished:(NSData *)data {
CustomViewController *c = [[[CustomViewController alloc] initWithData:data] autorelease];
[downloadView removeFromSuperview];
[window addSubview:c.view];
}
您的自定义视图控制器负责加载NIB并保存数据以供表访问。
https://stackoverflow.com/questions/1032719
复制相似问题