单击UIWebView上的链接时打开新的UIViewController

时间:2012-06-09 08:14:03

标签: objective-c ios xcode uiviewcontroller uiwebview

我发现这个帖子符合我的问题:Clicking a link in UIWebView pushes onto the NavigationView stack

但是,以下情况有所不同: 而不是使用navigationController,我使用基于视图的应用程序在按下相应的按钮时手动切换到不同的viewcontroller。 我使用onClick方法来检测用户何时点击UIWebView上的某些内容并尝试使用新的UIWebView打开新的ViewController,而不是使用链接。

相同的代码是否有效或者我是否需要进行一些更改?

2 个答案:

答案 0 :(得分:12)

你必须做一些修改

第一: 在onClick时,您必须将当前页面重定向到新位置 例如,此位置为MYLocation://GoThere

第二: 更新shouldStartLoadWithRequest

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

NSURL *url = request.URL;
NSString *urlString = url.absoluteString;

//Check if special link
if ( [ urlString isEqualToString: @"MYLocation://GoThere" ] ) {
    //Here present the new view controller
    MyViewController *controller = [[MyViewController alloc] init];
    [self presentViewController:controller animated:YES];

    return NO;
}

    return YES;

}

答案 1 :(得分:1)

我认为您可以使用oSt发布的shouldStartLoadWithRequest。 如果新的viewcontroller有一个webviewcontroller,那么你应该将url(甚至是请求)传递给新的viewcontroller以显示点击的URL。