uiwebview が完全に読み込まれるのを待ってから、完了したら finishedWebViewLoading からデリゲートが呼び出されるシナリオがあります。しかし、別のクラスにプライベート オブジェクトであるオブジェクトとしてロードが完了したら、その webView を返したいと考えています。デリゲートを通じてそれを行う方法はありますか?その uiwebview をパブリック プロパティとして使用したくないため、メイン ファイルで使用しました。
ありがとう。
uiwebview が完全に読み込まれるのを待ってから、完了したら finishedWebViewLoading からデリゲートが呼び出されるシナリオがあります。しかし、別のクラスにプライベート オブジェクトであるオブジェクトとしてロードが完了したら、その webView を返したいと考えています。デリゲートを通じてそれを行う方法はありますか?その uiwebview をパブリック プロパティとして使用したくないため、メイン ファイルで使用しました。
ありがとう。
きっとあなたはこのようにそれを行うことができます.. in .h
@protocol yourClassProtocal <NSObject>
- (void) loadingFinsihForWebView:(UIWebView*)wv;
@end
および webView デリゲートでwebViewDidFinishLoad
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
[delegate loadingFinsihForWebView:webView];
}
これを使用できます:
if([self.theDelegate respondsToSelector:@selector(loadData:)]) {
[self.theDelegate performSelector:@selector(loadData:) withObject:theObject];
あなたが求めていることを理解しているかどうかはわかりませんが、 から値を返すこと(void)webViewDidFinishLoad:(UIWebView*)webView
も、デリゲートの署名を変更することもできません。
一方、 から別のカスタム デリゲート メソッドを呼び出すつもりでwebViewDidFinishLoad
、それが を返すようにするwebView
場合、これは間違いなく可能です。そのカスタム デリゲート メソッドを呼び出して を渡し、webView
カスタム デリゲート メソッドがそれを返すようにするだけです。
これは、カスタム デリゲート メソッド シグネチャの定義を担当していることを前提としています。
@protocol CustomDelegateProtocol
- (UIWebView*)myCustomDelegateMethod:(UIWebView*)view;
@end
あなたの質問への答えは: はい。ただし、デリゲートの仕組みと作成方法について読む必要があるかもしれないと思います。この投稿は、そこにたどり着くための正しい道をたどるかもしれません: How does a delegate work in Objective-C?
また、この記事をご覧ください: http://blog.shoguniphicus.com/2011/10/17/writing-custom-delegate-in-objective-c/