1

HTMLボタンのあるページをロードするUIWebViewがあります。ユーザーがそのボタンをタップすると、「http://somerequest」が読み込まれます。

shouldStartLoadWithRequest (以下のコード) でリクエストをキャプチャしています。「http://somerequest」がリクエストされると、識別子「Comments」を使用してセグエが実行されます。

- (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」を返すことによって)、セグエを実行する方法を教えてください。

4

1 に答える 1

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;' を確認してください。と呼ばれます。シャニ

于 2012-09-16T06:31:12.093 に答える