在webView中执行Segue应该是StartLoadWithRequest并返回'NO'

时间:2012-09-13 13:58:22

标签: objective-c ios uiwebview segue

我有一个UIWebView,用于加载带有html按钮的页面。当用户点击该按钮时,会加载“http:// somerequest”。

我在shouldStartLoadWithRequest中捕获请求(在下面的代码中),当请求“http:// somerequest”时,执行带有标识符“Comments”的segue:

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

    NSURL *url = [request URL];


    if([[url absoluteString] isEqualToString:@"http://somerequest"])
    {

        [self performSegueWithIdentifier:@"Comments" sender:self];

        return NO;
    }
    return YES;
}

“performSegueWithIdentifier”正常工作但是shouldStartLoadWithRequest函数没有返回“NO”。如果我删除“performSegueWithIdentifier”,该函数可以返回NO。

请告诉我当UIWebView请求“http // somerequest”并且不在当前UIWebView中加载请求时(通过返回“NO”),我如何执行segue。

1 个答案:

答案 0 :(得分:2)

试试这个:

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

    NSURL *url = [request URL];
    BOOL returnValue = YES;

    if([[url absoluteString] isEqualToString:@"http://somerequest"])
    {

        [self performSegueWithIdentifier:@"Comments" sender:self];

        returnValue =  NO;
    }


    return returnValue;
}

以任何方式设置断点以确保'returnValue = NO;'叫做。 沙尼