У меня есть приложение, где я нахожусь в регистрационной форме, и когда пользователь нажимает кнопку отправки, он берет их на предыдущую страницу. Если на предыдущей странице, если пользователь нажимает, он возвращает их на страницу регистрации, которую я не хочу. Как удалить этот регистрационный вид из стека?Pop current view from stack и push new one Xamarin
Это мой текущий подход:
//inside MyRegistrationController button press
MyPreviousController SVC = this.Storyboard.InstantiateViewController("MyPreviousController") as MyPreviousController;
if(SVC != null){
SVC.offender = offender;
//var viewControllers = this.NavigationController.ViewControllers;
//viewControllers[viewControllers.Length - 1].View.RemoveFromSuperview();
//this.NavigationController.ViewControllers = viewControllers;
this.NavigationController.PopViewController(true);
this.NavigationController.PushViewController(SVC, true);
}
Этот нынешний подход делает что-то странное со стеком, который я нажимаю кнопку на MyRegistrationController
я иду к MyPreviousController
(ип обновляется), а затем быстро перейти к обновленной версии от MyPreviousController
вернуться к обновленной версии MyPreviousController
, а затем, если я нажму кнопку «Назад», я вернусь к MyPreviousController
Использование 'NavigationController.ViewControllers' будет работать. Проблема с вашим прокомментированным кодом заключается в том, что вы просто удаляете View из ViewController. Вы можете удалить ViewController из массива, установить свойство ViewControllers в обновленный массив, а затем он больше не будет в стеке. – dylansturg
Моя проблема в том, что нет 'UIViewController []' функции удаления, поэтому я не уверен, как идти об удалении элементов из этого массива –
Массивы не позволяют добавлять или удалять элементы - они представляют собой структуру данных фиксированного размера , Это довольно легко сделать с LINQ - добавьте 'using System.Linq;' вверху, затем вы можете сделать 'viewControllers.Take (viewControllers.Length 1) .ToArray();' и он создаст новый массив без последнего ViewController из исходного массива. – dylansturg