2013-08-20 59 views
0

我很新,在這個IOS目標C的東西,所以希望這是一個容易的。iOS查看更改前顯示'正在加載'消息

我有一個rightBarButtonItem,當按下使用push segue移動到下一個視圖。但是,加載該下一個視圖需要一段時間,因爲它涉及數據庫調用。我想按鈕來改變一個UILabel(或者改變UI)來顯示一條消息,指示它正在工作。

我試着在prepareForSegue方法中做事,但這些改變只發生在視圖改變之前,如果有的話。

我應該怎麼做才能找到我想要的?謝謝。

回答

9

我建議你到MBProgressHUD,它會提出一個很好的模態指標。這很容易實現。

看看這個github演示,並將其用於您的項目。我也建議你爲了更好的執行,對於從後臺數據庫的方法處理量數據使用Grand Central Dispatch (GCD)按你的方法: -

在你viewDidLoad中舉例方法: -

[MBProgressHUD showHUDAddedTo:self.view animated:YES]; //Activity Indicator loading 

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 

      [self LoadDatabae]; //database data fatch method 

      dispatch_async(dispatch_get_main_queue(), ^{ 

       [MBProgressHUD hideHUDForView:self.view animated:YES]; //hide that after your Dela Loading finished fromDatabase 
      }); 
     }); 
+1

我打字約MBProgressHUD :) upvote那! –

+0

太好了。謝謝。 我有一個問題已經出現在試圖實施你的建議。我的桌面視圖顯示在hud頂部,但其他一切正常。 如何強制tableview等待異步調用完成呈現? – erosebe

+0

你應該在dispatch_async(dispatch_get_main_queue())這個方法的末尾重新加載你的tableview –

0

您應該在Secondviewcontroller的以下任何一種方法中顯示加載器(在調用數據庫的地方)。

- (void)viewWillAppear:(BOOL)animated

- (void)viewDidAppear:(BOOL)animated

編輯:我打字建議MBProgressHUD。感謝Nitin Gohel。

相關問題