Я пытаюсь использовать SFSafariViewController, и это работает просто gr8.Браузер открывает и загружает мой сайт.Проблема в том, что я не могу поймать событие, когда пользователь нажимает кнопку «Готово».Я реализую ISFSafariViewControllerDelegate и экспортирую метод DidFinish, как подсказывает API.Вот пример кода.
Этот метод вызывается из ViewModel.
public async Task LaunchSafariWebViewAsync(string url, Action action)
{
var destination = new NSUrl(url);
var sfViewController = new SFSafariViewController(destination);
var window = UIApplication.SharedApplication.KeyWindow;
var controller = window.RootViewController;
await controller.PresentViewControllerAsync(sfViewController, true);
//Note that I'm able to invoke method manualy with this call
SFSafariViewControllerDelegate_Extensions.DidFinish(this, sfViewController);
}
И затем здесь я экспортирую метод, который я хочу вызвать, когда пользователь закрывает представление.
[Foundation.Export("safariViewControllerDidFinish:")]
public void DidFinish(SFSafariViewController controller)
{
var temp = "test";
}
Как я уже говорил в комментарии, когда я использую SFSafariViewControllerDelegate_Extensions, я могу вызвать метод вручную, поэтому я предполагаю, что он экспортируется правильно.Но он не вызывается, когда я нажимаю кнопку «Готово».
Есть предложения, почему это должно быть?