SFSafariViewController 使用 Objective-C

SFSafariViewController using Objective-C

使用 Objective-C 实现 SFSafariViewController 的最佳方法是什么。我目前有一个 UITableView,每个都指向不同的网站。我可以知道如何使用 Objective-C 而不是 Swift 对它们中的每一个进行编码以在 SFSafariViewController 中加载不同的网站吗?提前致谢!

这是一个检查 iOS 版本以处理 iOS 8 的版本,如果 SFSafariViewController 不兼容,则在 safari 中打开链接

NSURL *URL = [NSURL URLWithString:[NSString stringWithFormat:@"http://google.com"]];
if ([[UIDevice currentDevice].systemVersion hasPrefix:@"9"]) {
    SFSafariViewController *sfvc = [[SFSafariViewController alloc] initWithURL:URL];
    [self presentViewController:sfvc animated:YES completion:nil];
} else {
    [[UIApplication sharedApplication] openURL:URL];
}

然后也调用这个来处理完成按钮

- (void)safariViewControllerDidFinish:(nonnull SFSafariViewController *)controller {
[controller dismissViewControllerAnimated:YES completion:nil];}

这将适用于较新的版本,例如 10。

NSURL *URL = [NSURL URLWithString:[NSString stringWithFormat:@"http://google.com"]];
if ([SFSafariViewController class] != nil) {
    SFSafariViewController *sfvc = [[SFSafariViewController alloc] initWithURL:URL];
    [self presentViewController:sfvc animated:YES completion:nil];
} else {
    [[UIApplication sharedApplication] openURL:URL];
}