0

我正在构建一个应用程序,首先加载一个“下载”视图控制器,该控制器通过 API 调用获取数据数组。一旦数据返回,应用程序就会隐藏这个视图控制器的视图,并加载一个标签栏控制器,其中包含两个导航控制器。

推送到第一个导航控制器上的第一个视图是一个表格视图。正是在这个表视图中,我需要在初始“下载”视图控制器中显示从 API 调用检索到的数据。

有人可以向我解释如何在“下载”和表格视图控制器之间传递这些数据吗?考虑到他们彼此不了解。

一个重要的注意事项是,必须在加载标签栏控制器之前获取数据,因此不可能简单地从将使用它的表视图控制器中获取数据。

4

1 回答 1

1

您的数据从属于应用程序,因此应用程序委托可以保留指向数据的指针,然后两个视图可以使用[[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 并保存数据以供表格访问的位置。

于 2009-06-24T04:08:59.717 回答