0
我想覆蓋UIWebView對象中的URL點擊。我知道我需要在其中「webView的委託設置」的地方添加以下代碼(根據this thread):在哪裏設置代理
// 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;
}
不過,我不知道在哪裏居然把代碼。關於上述線程的一個建議是將其放置在viewDidLoad方法中,在「self.webView.delegate = self;」一行的下面。然而,我的UIWebViews實際上是一個自定義的UIView的一部分,它很像UIAlertView(實際上,它幾乎是一個UIAlertView的精確副本,除了它包含一個UIWebView)...所以,我的主應用程序的ViewController代碼不'看到'self.webView對象,所以我不能在那裏設置委託。而且,指定我的自定義UIView對象(調用UIWebView對象)的'm'文件沒有viewDidLoad方法。
真的很難與此,大概是因爲我不知道代表設置在哪裏。
謝謝!這是一種享受。我*做*雖然獲得警告;從不兼容的類型' *'分配給'id '。似乎工作,雖然...謝謝! –
CaptainProg
@CaptainProg你**需要**以符合'UIWebViewDelegate'協議... – 2012-10-30 23:31:30
..所以我可以忽略警告? – CaptainProg