2013-04-03 29 views
1

我有一個視圖控制器,它需要顯示從服務器拉出的數據。iOS何時何地取得視圖控制器的服務器數據

通常我通過服務器api適配器singleton從這個視圖控制器中加載需要的數據。

但最近我一直在想,也許最好從VC外部加載數據,然後在新數據可用時告訴VC。這樣VC不依賴於服務器獲取代碼。

或者換句話說:

眼下

  1. 目前VC
  2. 在VC的viewDidLoad調用服務器API單和取數據

替代

  1. 調用服務器API單和取數據
  2. 目前VC
  3. 當服務器數據準備好,告訴VC和數據傳遞

在你的經驗,這是更好的方法,爲什麼?還有其他方法嗎?

回答

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 
} 
+0

是的,這是我目前使用的流程。我只是想知道如果可能在外部加載數據會更好一些。 – nebs

0

我寧願先呈現viewController,然後獲取數據,最後在viewController上顯示數據。在獲取數據的同時,您可以在VC上添加加載狀態HUD,用戶始終知道您的應用程序正在工作。

有一個在你的第二個方式有一個問題,先獲取數據那麼目前VC,如果讀取數據失敗,用戶的觸摸/輕敲動作不會有任何影響,用戶可能會認爲你的應用程序無法正常工作。這是一種糟糕的用戶體驗。

+0

用戶體驗是相同的,因爲用戶看到視圖控制器出現,然後需要等待內容被加載。但你是對的,如果加載外部則進度是很難傳達,所以它看起來像第一種方法更有意義。 – nebs

相關問題