2011-03-08 88 views
0

我有一個顯示模態視圖的應用程序。在最後的模態視圖中,我有一個表單。一旦點擊完成按鈕,就會調用一個Web服務,它傳遞從用戶輸入的值。收到回覆後,模態視圖被解除。我希望顯示警報或操作表,要求用戶等待,因爲Web服務調用需要很長時間。問題在於警報或操作表只有在視圖被解除後纔會顯示。這是爲什麼發生?以下是完成功能的代碼:在模態視圖中顯示警報

-(void)reg:(id)sender { 
    if([password length] == 0) { 
     //show alert 
    } 
    //other validation 
    //This is were I write the alert 
    UIActivityIndicator *activity = [[UIActivityIndicator alloc] initWithActivityIndicatorStyle: 
                UIActivityIndicatorStyleWhite]; 
    UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Processing" delegate:self otherButtonTitles:nil]; 
    [alert addSubview:activity];  
    [activity startAnimating];  
    [alert show];   
    WebServiceController *web = [[WebServiceController alloc]init];   
    //webservice called 
    //getting the response 
    //dismissing alert here  
    [self dismissModalViewControllerAnimated:YES]; 
}
+0

您可以發佈警報代碼嗎? – visakh7 2011-03-08 11:37:12

回答

0

我明白了。這不是模態視圖的問題。警報被阻止,因爲主線程正在執行Web服務。 Web服務執行需要在後臺運行。以下是與答案相似的問題的鏈接。

Showing alert while calling webservice

0

您必須爲webservice響應編寫監聽器或通知。如果您使用的是NSUrlConnection,請使用其委託來獲取響應並從委託方法中取消模態視圖。在你使用的方法中,視圖在調用web服務之後立即解散

+0

我沒有得到你。我在web服務調用之前發出警報。它不應該顯示警報,然後執行web服務調用? – 2011-03-08 11:48:13