2011-01-20 9 views
0

私はInterface BuilderでUIWebViewを設定し、その代理人をFile's Ownerに設定しました。私はwebViewShouldStartLoad、webViewDidFinishLoad、webViewDidStartLoad、およびwebViewDidFailLoadWithErrorをNSLogsで設定して、動作しているかどうかを確認します。 webViewShouldStartLoadは完全に機能しますが、他の3つは初期ロードでのみ機能します。別のページに行くためにリンクをクリックすると、他の3つは動作しません。すべてのWebページはうまくロードされますが、webViewShouldStartLoad以外のwebviewデリゲート関数をworkAnyoneに渡すことはできません。UIWebViewDelegateの問題

答えて

0

File's Ownerは、View ControllerがUIWebViewを担当していますか?

これが正しいことを確認してください。

第2に、コード内にデリゲートを設定することをお勧めします。私は初心者の開発者のための謎を取り除く。 Interface Builderは、特にコード内でリンクがどのように見えるか不明な場合に、不明確になることがあります。インターフェースビルダーはあなたが特定のコードを書くのを防ぎます。 IBでやっていることはすべてコードで行うことができます。

通常のviewDidLoadで、ビューコントローラでこれを試してみてください:

self.webView.delegate = self; 

があることを確認してください(あなたは「自己」を呼び出す必要はありません、私はこのスレッド外の理由のためにしたいです) UIWebViewを所有するView Controllerは、ヘッダーファイルにUIWebViewDelegateを実装します。

UPDATE また、デベロッパーのサイトから:

「重要:あなたはUIScrollViewのオブジェクトでのUIWebViewかのUITableViewオブジェクトを埋め込むべきではありませんあなたがそうするならば、予期しない動作が発生することができますので、二つのオブジェクトのためのタッチイベントすることができます混乱して間違って処理される」

これを行いましたか?

+0

はいFile's Ownerは、UIWebViewを担当するView Controllerです。コード内にデリゲートを設定しようとしましたが、View ControllerはUIWebViewDelegateプロトコルを確実に実装しています。変わったことは、webViewShouldStartLoadがうまく動作することです。デリゲートの設定に問題があった場合、それはうまくいかないはずです。 – Josh

+0

複数のWebViewがありますか?代理人を適切な場所にnilに設定していますか? UIWebViewをサブクラス化しましたか?それ以外にも、サンプルコードを投稿しない限り、私は助けることができません。あなたが私にそれを送るのが気持ちが良ければ、クラスファイルを見ることができます。 –

+0

私は複数のWebViewを持っていますが、それらは異なるView Controllerにあります。デリゲートを適切な場所に設定しないとどういう意味ですか?デリゲートをなぜ、どこに設定しなければならないのでしょうか? – Josh

関連する問題