1

UIWebView がそのコンテンツ (mp3 ファイル) をロードしている間、セルが押されるとロード ビューが表示される UITableView があります。UIWebView の読み込みが開始されると、モーダル ビューが押し上げられます。その部分は正常に動作します。モーダル コントローラーが押し上げられるまで、読み込み中のビューが表示されます。

問題は、モーダル ビューがいつ閉じられたかを判断するためにヒットするメソッド (Web ビュー デリゲート、viewDidAppear など) が見つからないため、テーブルビューに戻るときに読み込み中のビューを削除できることです。モーダル ビューを閉じても、読み込み中のビューが表示されます。

私が試したこと:

1) webViewDidFinishLoad を使用しようとしましたが、呼び出されません。(mp3 では呼び出されませんか?)

2) webViewDidStartLoad のローディング ビューを削除する - 問題は、ユーザーがローディング中に白い画面を見ていることです。

3) UIWebView を独自の UIViewController に配置し、そのビューのアルファを 0 に設定します。

基本的に、テーブルビュー -> ロード画面 -> webview モーダル ビュー -> テーブルビュー (ロード画面は存在しません) が必要です。

私が考えることができる唯一の他のことは、モーダルビューの「完了」ボタンの上に非表示のボタンを作成し、それを使用してWebビューがいつ閉じるかを決定することです。

考えや提案はありますか?

ありがとう、

ジョン

4

2 に答える 2

0

次のようなもので、モーダル ビューをどこでどのように閉じるのですか。

[self dismissModalViewControllerAnimated:YES];

この時点で、たとえば、ビューの読み込みを停止したいという通知を送信できます。

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

ローディング ビューを表示しているクラスは、次の通知を監視する必要があります。

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(stopLoadingView) name:@"STOP_LOADING_VIEW" object:nil];

そして、ローディング ビューを処理するメソッドを実行します。この動作を実現するには多くの方法がありますが、いくつかのコードを示す必要があります。

于 2011-01-11T08:55:41.190 に答える
0

この場合のより良い解決策は、オーディオが欲しいだけなので AVAudioPlayer を使用することだと思います。

于 2011-01-11T17:59:57.333 に答える