2015-12-18 2 views
3

У меня есть тест ViewController, который встроен в NavigationController. В тесте ViewController У меня есть кнопка WebView. Когда я нажимаю на этот button, он переходит на SafariViewController и загружает заданный URL. В этом WebView, когда я нажимаю кнопку «Готово», он вызывает метод делегирования, называемый safariViewControllerDidFinish. Но что SafariViewController не уволен.SFSafariViewController done кнопка не работает

Вот мой код.

- (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 звонит, мнение не увольняя. Я проверил журнал для self и controller, оба правильные.

ответ

7

Вы не должны говорить

[self showViewController:safariVC sender:nil]; 

Вы должны сказать

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

SFSafariViewControllers предназначены быть представлены модально и уволит себя, когда закончите нажимается.

+0

Прекрасно работает, спасибо, и сэкономил время. – vishnu