2012-04-18 66 views
0

我想用MBProgressHUD顯示我的下載進度。我正在使用以下代碼:ASIHTTPRequest內置認證對話框正在刪除我的MBProgressHUD。我怎樣才能再次顯示它?

[HUD showWhileExecuting:@selector(downloadFile) onTarget:self withObject:nil animated:YES]; 

服務器處於基本HTTP身份驗證狀態。如果我提供用戶名和密碼,那麼它工作正常;顯示進度指示器。但是如果密碼過時或者沒有從代碼提供,那麼認證對話會出現,並詢問用戶的憑證(在這個過程中,刪除我的信息)。之後,它會繼續下載而不顯示HUD。驗證提示被解除後,如何顯示我的HUD?

+0

是的,我正在執行和異步請求。 – Max 2012-04-18 04:56:52

回答

0

首先,如果您正在進行異步請求而不是避免使用showWhileExecuting: onTarget:withObject:animated:方法。看看NSURLRequest示例(thisthis),並執行與ASIHTTPRequest API類似的操作。

此外,當驗證對話框出現時(一個好的地方可能是您的控制器的viewWillDisappear:),您應該手動隱藏hud,並在對話框關閉時再次顯示(在您的控制器的viewWillAppear:中)。

+0

我正在爲iPad工作,所以viewWillAppear:或viewWillDisappear:在這裏不起作用:( – Max 2012-04-22 07:07:09

+0

比嘗試使用任何現有的ASIHTTPRequest委託回調都行得通,如果適當的回調不可用,您可能需要繼承ASIAuthenticationDialog add add你自己的委託協議,當這個視圖出現並消失時可以通知你,然後簡單地繼承ASIHTTPRequest的子類,然後重寫showAuthenticationDialog來顯示你自定義的ASIAuthenticationDialog子類。 – 2012-04-22 09:06:56