3

私の問題に一致するこのスレッドを見つけました: UIWebView のリンクをクリックすると、NavigationView スタックにプッシュされます

ただし、次の状況は異なります。navigationController を使用する代わりに、ビューベースのアプリケーションを使用して、対応するボタンが押されたときに別のビューコントローラーに手動で切り替えています。リンクを使用するのではなく、onClick メソッドを使用して、ユーザーが UIWebView で何かをクリックしたことを検出し、新しい UIWebView で新しい ViewController を開こうとしています。

同じコードで機能しますか、それとも変更する必要がありますか?

4

2 に答える 2

12

いくつかの変更を行う必要があります

1つ目: の場合onClick、現在のページを新しい場所にリダイレクトする必要があります。たとえば、この場所は次のようになりますMYLocation://GoThere

2番目: を更新する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;

}
于 2012-06-09T08:20:33.840 に答える
1

Omarが投稿したように、 shouldStartLoadWithRequest を使用できると思います。新しいビューコントローラーに webviewcontroller がある場合は、URL (またはリクエスト) を新しいビューコントローラーに渡して、クリックされた URL を表示する必要があります。

于 2012-06-09T08:25:20.530 に答える