2012-09-11 34 views

回答

0

沒有地址可用於視圖控制器,但您可以添加事件以捕獲錨點的點擊。

這是一個例子:

在HTML文件中:

<a href="#HELLO">Hello World</a> 


在.m文件

(Xcode中):

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType{ 

NSURL * URL = [request URL]; 

if ([URL rangeOfString:@"#HELLO"].location != NSNotFound) { 
// Do whatever you want here. 
} 

return YES; 
} 

的shouldStartLoadWithRequest激活每次webview的位置發生了變化, 當您點擊錨點時,位置將爲例如:file.html#HELLO

0

這很簡單。如果你正在創建html,那麼你應該知道鏈接的樣子。如果是這樣,加載webview之前檢查鏈接是一件簡單的事情。你應該web視圖的委託設置爲self,然後像做:

-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 
{ 
NSString *urlString = [NSString stringWithFormat:@"%@", request.URL]; 
if([urlString isEqualToString:@"http://www.myCustomHyperLink"]) 
{ 
[self.navigationController pushViewController:myNextViewController]; 
return NO; 
} 
return YES; 
} 

在上面的例子中,如果URL是你需要打開下一個視圖鏈接,導航控制器推動下一個視圖控制器和回報NO,以便webview不會重新加載。否則,webview將重新加載頁面。

您可以將if語句更改爲任何適合您需要的語句。

我使用這個應用程序中是這樣的:

我在一個視圖中的多個環節。所以,如果鏈接是我自己的鏈接,我在第二個視圖控制器中打開它。否則,我打開Safari。這是因爲我不想將我的應用程序變成瀏覽器。 所以我有類似的東西:

if([urlString rangeOfString:@"www.myDomain.com"].location == NSNotFound) 
{ 
[[UIApplication sharedApplication] openURL:request.Url]; 
} 
else 
...push the next view controller how I showed you above. 
相關問題