1

我有一个视图控制器,它需要显示从服务器中提取的数据。

通常我通过服务器 api 适配器单例从这个视图控制器中加载我需要的数据。

但最近我一直在想,也许最好从 VC 外部加载数据,然后在有新数据可用时告诉 VC。这样 VC 不依赖于服务器获取代码。

或者换句话说:

现在

  1. 介绍 VC
  2. 在 VC 的 viewDidLoad 中调用服务器 api 单例并获取数据

选择

  1. 调用服务器 api 单例并获取数据
  2. 介绍 VC
  3. 当服务器数据准备好后,告诉 VC 并传入数据

根据您的经验,哪种方法更好,为什么?还有其他方法吗?

4

2 回答 2

0

我更喜欢先呈现 viewController,然后获取数据,最后在 viewController 上显示数据。在获取数据时,您可以在 VC 上放置加载状态 HUD,用户始终知道您的应用程序正在运行。

你的第二种方式有一个问题,先获取数据然后呈现VC,如果获取数据失败,用户的触摸/点击动作将无效,用户可能会认为你的应用程序不工作。这是一种糟糕的用户体验。

于 2013-04-03T02:11:05.383 回答
0

我的基本流程,效果很好。

- (void)viewDidLoad
{
    //some code
    [self loadAPIData]
}


-(void)viewWillDisappear:(BOOL)animated
{
    if ([self.navigationController.viewControllers indexOfObject:self]==NSNotFound) {
        //cancel api operation
    }
}

-(void) loadAPIData
{
    //Call Api and show UIActivityIndicatorView
}
于 2013-04-03T02:22:58.030 回答