SFSafariViewController完成按钮不起作用

时间:2015-12-18 14:06:49

标签: ios objective-c webview nsurl sfsafariviewcontroller

我有一个嵌入ViewController的测试NavigationController。在测试ViewController中,我有一个WebView按钮。当我点击button时,它会导航到SafariViewController并加载给定的网址。在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];  
}

完成button正在调用,查看并未解雇。我检查了selfcontroller的日志,两者都是正确的。

1 个答案:

答案 0 :(得分:9)

你不应该说

[self showViewController:safariVC sender:nil];

你应该说

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

SFSafariViewControllers是以模态方式呈现的,并且在按下完成后会自动解除。