У меня есть WebView с инлайн URL ссылки, которые открываются с SFSafariViewController, как показано ниже: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, чего я не хочу. Я попытался принудительно перезагрузить Webview в safariViewControllerDidFinish, но безуспешно.
Не могли бы вы помочь? Благодаря!
Вы не хотите, чтобы вернуть 'NO' в конце вашего' если ([класс SFSafariViewController ]! = nil) 'block? – beyowulf
Это сработало! Большое вам спасибо за вашу оперативную помощь. –