iOS在何处以及何时获取视图控制器的服务器数据

时间:2013-04-03 02:03:58

标签: ios uiviewcontroller

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

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

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

或换句话说:

现在

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

    1. 调用服务器api singleton并获取数据
    2. 介绍VC
    3. 当服务器数据准备就绪时,告诉VC并传入数据
    4. 根据您的经验,这是更好的方法,为什么?还有其他方法吗?

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分: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
}