我在Web視圖中顯示HTML文件。當用戶單擊超鏈接時,我想在同一個應用程序中的另一個視圖上移動。如何才能做這個??點擊一個超鏈接,應用程序需要移動到Xcode的另一個視圖
「HREF =‘新視圖控制器’,」
是什麼的URL「新視圖控制器」 -
如何找到它?
謝謝。
我在Web視圖中顯示HTML文件。當用戶單擊超鏈接時,我想在同一個應用程序中的另一個視圖上移動。如何才能做這個??點擊一個超鏈接,應用程序需要移動到Xcode的另一個視圖
「HREF =‘新視圖控制器’,」
是什麼的URL「新視圖控制器」 -
如何找到它?
謝謝。
沒有地址可用於視圖控制器,但您可以添加事件以捕獲錨點的點擊。
這是一個例子:
在HTML文件中:
<a href="#HELLO">Hello World</a>
(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
這很簡單。如果你正在創建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.
不知道該用什麼...... :( –