Как я могу пропустить некоторые стеки, чтобы просто перейти на главную страницу? - PullRequest
0 голосов
/ 26 сентября 2018

У меня проблема с кнопкой, поэтому у меня есть функция, которая включается только через 5 страниц после главной страницы.Чем на этой пятой странице я хочу дотронуться до кнопки backButton и перейти на главную страницу (то есть за 5 страниц до этого), есть ли какой-нибудь код, чтобы сделать это для кнопки возврата?Как я могу это сделать?

EDIT1"MainPage" не моя корневая страница !!!!

Ответы [ 3 ]

0 голосов
/ 26 сентября 2018

Вы можете получить переопределение OnBackButtonPressed (), но вы должны позаботиться, потому что это перезапуск просто срабатывает, когда вы нажимаете физическую кнопку, тогда это решение не работает с iOS только для Android, для iOS вы должны создать пользовательский рендер для навигации.страницы и замените кнопку возврата по умолчанию на новую и добавьте необходимое действие.

другим способом получить такой подход может быть переопределение OnDisappearing () страницы

protected override void OnDisappearing()
{
    if (Navigation.NavigationStack.Last() == this)
    {
        Navigation.PopToRootAsync();
    }

    base.OnDisappearing();
}
0 голосов
/ 26 сентября 2018

Я думаю, что ответ Денниса правильный, и, кажется, вы знаете, на сколько шагов вы хотите вернуться, поэтому:

protected override bool OnBackButtonPressed()
{
   // Go back 5 steps when the back button is pushed    
   for (var i=0; i<5; i++) {
      Navigation.PopAsync();
   }

   return true;
}
0 голосов
/ 26 сентября 2018

Переопределите метод OnBackButtonPressed() в коде вашей страницы.

Если вы хотите вернуться на корневую страницу, вы можете позвонить Navigation.PopToRootAsync():

protected override bool OnBackButtonPressed()
{
    Navigation.PopToRootAsync();
    return true;
}

Если вы хотите перейти назад на одну страницу, просто Navigation.PopAsync().Если вы хотите вернуться назад, например, три раза, вы можете позвонить Navigation.PopAsync() три раза.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...