2017-02-14 7 views
0

Я хочу сделать сервисный вызов API REST для проверки значения и, если это правда, перевести пользователя на новую страницу. Вместо того, чтобы представлять контроллер представления, я хотел бы просто использовать сеанс, который я подключил.Xamarin - iOS Async Задача в функции переопределения

Вызов службы для проверки значения является асинхронной задачи, и я зову его, когда переход пытается стрелять (когда пользователь нажимает на кнопку)

public override bool ShouldPerformSegue(string segueIdentifier, NSObject sender) 
{ 
    .. run check here, and return true or false to fire the segue 
} 

Проблема заключается в том, что C# хочет, чтобы изменить этот метод должен быть async Task или async void или async Task, но это нарушает «переопределение», поскольку я больше не переопределяю.

Каков правильный подход к обработке вызова с помощью асинхронного программирования, а затем, как только звонок заканчивается, уберите пользователя?

Большое спасибо.

ответ

1

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

Пример:

var someTask = Task.Run(async() => 
{ 
    var EventModal = await Method(); 
    await Navigation.PushAsync(Page(EventModal.Stuff)); 
}); 
+0

Спасибо! Это было правильно – NullHypothesis

+0

Проблема с этим в том, что вы все еще выполняете что-то асинхронное, которое может пойти не так с определенным временем. В любом случае следует избегать выполнения служебного вызова в preperform segue. – Mittchel

 Смежные вопросы

  • Нет связанных вопросов^_^