2013-06-04 24 views
0

我正在開發iPhone應用程序。它的一個特點是:我按下了一個按鈕,因此它出現了一個tableView,其中的數據來自數據庫。這工作正常。調用Web服務時添加加載指示器 - 目標c

事情是,有時候,當我點擊那個按鈕時,應用程序凍結了幾秒鐘,所以我想添加一個加載指示器或類似的東西,以表明你必須等待一點點。

那麼,我已經實現了加載指示器,它的工作原理是因爲我在其他視圖中檢查過它。問題是,當我點擊按鈕時,我添加了子視圖,並且我推入了新的viewController,在其viewWillAppear中,webService被調用。所以該應用程序凍結,但不顯示任何加載指標。當我向Web服務發送請求時,它在NSURLConnection中完全凍結,但是,我不知道爲什麼,subView沒有被添加。如果我不刪除子視圖,當我從tableView返回到此視圖時,會顯示加載指示符。

所以我不知道如何解決這個問題。

如果你能幫助我,那會很好。

我附上我的代碼

- (IBAction)menuButtonPressed:(id)sender{ 

    LoadingIndicator *load = [[LoadingIndicator alloc] init]; 
[load addLoadingView:self.view]; 

NSString *boton = [sender currentTitle]; 

if ([boton isEqualToString:@"Lugares"]){ 

    CategoriesViewController *catController = [[CategoriesViewController alloc] initWithNibName:@"CategoriesViewController" bundle:nil]; 

    [self.navigationController pushViewController:catController animated:YES]; 
    [catController release]; 

} 
} 

LoadingIndicator一些作品,是一類在那裏我做與指示燈的子視圖。

回答

2

你會想添加一個線程:

//add your loading view 
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 
    // make your web service call here 

    dispatch_async(dispatch_get_main_queue(), ^{ 
     // process results from web service call 
     // remove loading view 
    }); 
}); 
相關問題