2011-01-11 73 views
1

我有一個UITableView,當按下一個單元格時,顯示一個加載視圖,而UIWebView加載它的內容(mp3文件)。當UIWebView開始加載時,它將推動其模態視圖。該部分工作正常 - 顯示加載視圖,直到模態控制器啓動。如何確定何時移除UIWebView模態視圖?

問題是我找不到任何類型的方法(web視圖委託,viewDidAppear等)來確定模式視圖何時關閉,以便我可以在返回到tableview時刪除加載視圖。當模態視圖關閉時,用戶仍然可以看到加載視圖。

事情我已經嘗試:

1)儘量選用webViewDidFinishLoad,但它永遠不會被調用。 (不會在mp3上調用?)

2)刪除webViewDidStartLoad上的加載視圖 - 問題是用戶在繼續加載時查看白色屏幕,這有點俗氣,我試圖避免它。

3)將UIWebView放在它自己的UIViewController中,並將它的視圖的alpha設置爲0.(想法是看不到白色視圖並繼續看到加載屏幕,直到模式視圖出現,然後可能捕獲一個viewDidX方法。 )

本質上,我希望tableview - >加載屏幕 - > webview模式視圖 - > tableview(沒有加載屏幕存在)。

我能想到的唯一的其他事情就是在模式視圖的「完成」按鈕的頂部創建一個隱形按鈕,並使用它來確定webview關閉的時間。

想法或建議?

感謝,

約翰

回答

0

在哪裏,你怎麼打發的是這樣的模式的看法:

[self dismissModalViewControllerAnimated:YES]; 

在這一點上,你可以,例如,發送通知你想要 加載視圖停止:

[[NSNotificationCenter defaultCenter] postNotificationName:@"STOP_LOADING_VIEW" object:nil]; 

顯示這條加載視圖類必須遵守本通知:

和執行的方法,將處理加載視圖。 有很多方法可以實現這種行爲,但是你必須展示一些代碼。

+0

也許我不理解你,但我不認爲我有任何訪問模式視圖在這種情況下 - 我不需要自己關閉它,只是知道什麼時候它關閉。像用戶使用「完成」按鈕關閉視圖時要點擊的某種方法。我是否正確地理解你? – jmosesman 2011-01-11 17:07:30

0

我認爲在這種情況下更好的解決方案是使用AVAudioPlayer,因爲我只是想要音頻,所以這就是我最終可能做的。

+0

其實,AVAudioQueue *因爲mp3不是本地文件。 – jmosesman 2011-01-12 14:53:25