SFSafariViewController完成按钮不起作用

vis*_*hnu 4 objective-c nsurl webview ios sfsafariviewcontroller

我有一个ViewController嵌入在测试中的测试NavigationController.在测试中,ViewController我有一个WebView按钮.当我点击button它导航到SafariViewController它并且它正在加载给定的URL.在这WebView当我点击"完成"按钮,它调用名为委托方法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];  
}
Run Code Online (Sandbox Code Playgroud)

完成button是呼唤,观点不是解雇.我检查日志中selfcontroller,两者都是正确的.

bey*_*ulf 10

你不应该说

[self showViewController:safariVC sender:nil];
Run Code Online (Sandbox Code Playgroud)

你应该说

[self presentViewController:safariVC animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

SFSafariViewControllers旨在以模态方式呈现,并在按下完成时自动解除.