0

以下に示すように、SFSafariViewController で開かれるインライン URL リンクを含む Webview があります。

-(BOOL) webView:(UIWebView *)inWeb shouldStartLoadWithRequest:(NSURLRequest *)inRequest navigationType:(UIWebViewNavigationType)inType {
    if ( inType == UIWebViewNavigationTypeLinkClicked ) {
        if ([SFSafariViewController class] != nil) {
            NSString *inR = [[inRequest URL] absoluteString];
            NSURL *inReq = [NSURL URLWithString:inR];
            SFSafariViewController *safariVC = [[SFSafariViewController alloc] initWithURL:inReq entersReaderIfAvailable:YES];
            safariVC.delegate = self;
            [self presentViewController:safariVC animated:YES completion:nil];
        } else {
            [[UIApplication sharedApplication] openURL:[inRequest URL]];
            return NO;
        }
    }
    return YES;
}

#pragma mark - SFSafariViewController delegate methods
-(void)safariViewController:(SFSafariViewController *)controller didCompleteInitialLoad:(BOOL)didLoadSuccessfully {
    // Load finished

}

-(void)safariViewControllerDidFinish:(SFSafariViewController *)controller {
    // Done button pressed
    NSLog(@"DONE PRESSED!!!");
}

DONE ボタンを押すと、正しく Webview に戻ります。問題は、同じインライン リンクをもう一度押すと、SFSafariViewController ではなく、私が望むものではない Webview で開かれることです。safariViewControllerDidFinish で Webview のリロードを強制しようとしましたが、成功しませんでした。

助けていただけますか?ありがとう!

4

1 に答える 1