Я создал segue в своем раскадровке. Это модальный переход, и я дал ему идентификатор LoginSegue.Xamarin iOS Unwind Segue или DismissViewController программно и передавать данные
В мой контроллер, я делаю:
PerformSegue("LoginSegue", this);
Все хорошо. Новый контроллер работает так, как ожидалось.
Чтобы вернуться к вызывающему виду, я могу использовать разматывание, проводя кнопку для разматывания в вызывающем контроллере. Это прекрасно работает.
Или я могу позвонить (с кодом):
DismissViewController(true, null);
Дело в том, что я хочу передать некоторые данные.
ParentViewController
- null.
Мне нужно выполнить некоторую проверку, прежде чем я вернусь к вызывающему виду, поэтому автоматическое отключение от кнопки не является вариантом.
[Action("UnwindToCaller:")]
public void UnwindToCaller(UIStoryboardSegue seque)
{
var loginViewController = (LoginViewController)seque.SourceViewController;
var data = loginViewController.getData();
Console.WriteLine("Unwind to Caller Here.");
}
Я также не могу найти способ дать раскрутку segue раскадровку Id.
Если бы я мог выполнить размотку segue из кода, все было бы хорошо, или если бы я мог передать некоторые данные обратно с DismissViewController, это тоже было бы хорошо.
Опять же, это похоже на довольно распространенную вещь.
Если вы нажмете на сегмент в списке сюжетов в левой части окна, вы можете использовать инспектор атрибутов, чтобы дать ему идентификатор. Вы можете использовать prepareForSegue для отправки данных обратно на начальный контроллер с помощью размотки, как и для перемотки вперед. – rdelmar
Забыл упомянуть. Я использую Visual Studio. Я не вижу «Список сцен». Я могу видеть все мои нажатия в раскадровке и в наброске документа (и дать им идентификаторы), а не разматывать сеанс. –
Является ли «LoginSegue» модальным отступлением? Если это так, попробуйте проверить значение свойства «PresentingViewController» на контроллере входа. – pnavk