2010-05-15 54 views
2

我有一個應用程序,與標籤和web視圖。每次選擇了選項卡上的項目時,我已經設置了刷新分配給選項卡的頁面。我現在的問題是,加載頁面需要一些時間,並且不可能說出正在顯示的頁面是舊的還是已刷新的頁面。如何在每次加載新頁面時爲UIWebView應用程序添加「加載」屏幕?

我想要做的是添加一個「加載」屏幕(一個簡單的圖像),它將被顯示,直到刷新的頁面被加載。這裏是我在每個標籤頁上運行的功能:

- (void) goToPage:(NSString *)sid 
{ 
    NSString *newURL = [NSString stringWithFormat:@"%@/mykingdom.php?sid=%@", appURL, sid]; 

    [secondView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:newURL]]]; 
} 

謝謝!

+0

我覺得這個鏈接會更充分的使用你。 如何在網頁視圖中打開網頁iphone [1]:http://stackoverflow.com/questions/2824845/how-to-show-a-loading-message-while-uiwebview-loads-its -content – 2013-02-08 12:05:32

回答

5

UIWebViewDelegate有2點方便的方法:

– webViewDidStartLoad:(UIWebView *)webView 
– webViewDidFinishLoad:(UIWebView *)webView 

你可以很容易實現,做任何你喜歡的。 乾杯,

+0

謝謝Marcio! 不幸的是我需要更多的幫助。我在哪裏放這個代碼?我嘗試將它添加到分配給適當webview的類中,但是當我加載頁面時它不會啓動。 – AragornSG 2010-06-03 18:43:56

+0

我不知道你的代碼。無論如何,我想你正在使用uiwebview的兩個實例(一個是你的secondView),也許在一個viewcontroller。 viewcontroller是一個很好的地方,你可以實現兩個委託方法,記得將每個webview的委託屬性設置爲正確的對象(firstView.delegate = self,secondView.delegate = self):也許你已經忘了這兩行的代碼。否則,您可以直接在webview類內擴展webview並管理其委託方法:如果您不需要任何特定的其他對象引用,這可能是一個非常別緻的方法。 – marcio 2010-06-03 19:30:03

+0

好的,我想通了,添加了圖像視圖,並將其隱藏或在這兩個函數中可見。 – AragornSG 2010-10-30 15:40:12

0

首選UI將顯示一個大的UIActivityIndi​​catorView。這就是轉動高光的「齒輪」。

如果您想要別的東西,您可以在UIWebView上顯示一個模態視圖,並在其中顯示一些圖形,然後在Web視圖報告自己完成加載時解除它。

如果你想要一個web視圖來顯示一些東西,最簡單的方法是不得不網絡視圖,其中一個顯示加載頁面,另一個顯示加載實際頁面。根據需要將它們交換出來。這會導致不得不管理下載到一個字符串,然後加載到一個Web視圖,有時可能會混亂的複雜的Web視域。

+0

UIActivityIndi​​catorView並不是我正在尋找的,因爲我想隱藏「舊」頁面以避免用戶混淆。 「UIWebView的模態視圖」是什麼意思,以及代碼如何? – AragornSG 2010-05-16 19:55:50