SFSafariViewController 完成按钮不起作用

SFSafariViewController done button not working

我有一个嵌入在 NavigationController 中的测试 ViewController。在测试 ViewController 中,我有一个 WebView 按钮。当我单击那个 button 时,它导航到 SafariViewController 并且它正在加载给定 URL。在 WebView 中,当我单击 "Done" 按钮时,它会调用名为 safariViewControllerDidFinish 的委托方法。但是 SafariViewController 并没有被驳回。

这是我的代码。

- (IBAction)bannerWebviewAction:(id)sender {
    NSURL *urls = [NSURL URLWithString:@"http://www.google.com"];
    SFSafariViewController safariVC = [[SFSafariViewController alloc] initWithURL:urls];
    [self showViewController:safariVC sender:nil];
    safariVC.delegate = self;
}

#pragma SFSafariViewControllerDelegate
-(void)safariViewControllerDidFinish:(SFSafariViewController *)controller {
    // Done button pressed
    [controller dismissViewControllerAnimated:YES completion:nil];  
}

完成 button 正在调用,视图未关闭。我检查了 selfcontroller 的日志,两者都是正确的。

你不应该说

[self showViewController:safariVC sender:nil];

你应该说

[self presentViewController:safariVC animated:YES completion:nil];

SFSafariViewControllers 旨在以模态方式呈现,并在按下完成时自动关闭。