2013-05-01 16 views
0

我的應用程序使用自定義導航控制器。基於導航的應用程序:當控制器不再是當前控制器時刷新UIElements

當我在導航棧上向上推UIVIewController時,我必須通過網絡加載數據。

我用:

[self.navigationController popViewControllerAnimated:YES] 

當數據經常被載入我:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void) { 

}); 

到這樣的應用程序仍然響應,因此用戶可以按它使用後退按鈕載入我的數據刷新UIElement就像UITableView,UILabel ...當我們按下pushBack按鈕時,控制器不再是當前的控制器,所以當元素刷新時,一切都崩潰了。

所以我有兩個問題:

  • 我怎麼能知道,如果在刷新設置控制器的電流控制器或沒有?
  • 我想我錯過了一些東西,蘋果公司是否不知道它會發生,他們有可能設置的東西呢?

謝謝你的幫助,對不起我的英文。

+0

你使用的是ARC嗎? – 2013-05-01 14:00:55

回答

0

加載數據時顯示活動指示器。直到數據正在加載的時候,不允許用戶彈出當前的視圖控制器。這可以通過向頂部的當前添加透明視圖並在加載完成後立即移除透明視圖來實現。這個功能可以使用MBProgressHUD輕鬆實現。

這是鏈接:https://github.com/jdg/MBProgressHUD

+0

我不希望我的用戶等待加載! – user2252092 2013-05-01 17:28:43

+0

在這種情況下,您可以採用一個標誌來通知用戶是否在當前視圖中。在ViewWillAppear中,只要傳遞ViewWillDisappear:就傳遞該標誌的TRUE值,將該標誌的值作爲FALSE傳遞。在填充(或刷新)UITableView之前,還要檢查標誌的值是否爲TRUE – 2013-05-01 17:34:40

+0

我對此非常擔心,這是一個很好的iedea,但我不明白爲什麼蘋果沒有處理這種情況。 。 。非常感謝你 – user2252092 2013-05-01 18:01:30

相關問題