UIWebViewオブジェクトのURLクリックを上書きしようとしています。'webViewデリゲートが設定されている場所'に次のコードを追加する必要があることを知っています(このスレッドによると):
// TODO: This should intercept URL clicks in a UIWebView, causing (for now) links to open in Safari. It doesn't work yet; possibly it's in the wrong place. Should be in the same place as we 'set the webView delegate'...
// This doesn't appear to be set anywhere yet, which is probably where I'm going wrong.
- (BOOL)webView: (UIWebView*)webView shouldStartLoadWithRequest: (NSURLRequest*)request navigationType: (UIWebViewNavigationType)navigationType {
if ( navigationType == UIWebViewNavigationTypeLinkClicked ) {
[[UIApplication sharedApplication] openURL:[request URL]];
return NO;
}
return YES;
}
しかし、実際にコードをどこに置くかはわかりません。上記のスレッドに関する1つの提案は、「self.webView.delegate=self;」という行の下のviewDidLoadメソッドに配置することです。ただし、私のUIWebViewは、実際にはUIAlertViewのように呼び出されるカスタムUIViewの一部です(実際、UIWebViewが含まれていることを除いて、UIAlertViewのほぼ正確なレプリカです)...したがって、私のメインアプリのViewControllerコードself.webViewオブジェクトを「表示」しないため、そこにデリゲートを設定できません。また、カスタムUIViewオブジェクト(UIWebViewオブジェクトを呼び出す)を指定する「m」ファイルには、viewDidLoadメソッドがありません。
おそらく、デリゲートがどこに設定されているのかわからないため、これに本当に苦労しています。