Как динамически скрыть кнопку назад на некоторых страницах, а на некоторых нет? Для навигации я использую await Shell.Current.GoToAsyn c (маршрут)
Об этом вопросе есть Обходное решение для вас.
Оболочка Приложение имеет Поведение кнопки «Назад» , чтобы динамически переворачивать кнопку «Назад», даже можно скрыть / показать ее.
При использовании Shell.Current.GoToAsync(route)
для навигации к пункту назначения странице, вы можете следовать приведенному ниже коду для использования на странице назначения.
// Button click to show Back Button
private void Button_Clicked_Show(object sender, EventArgs e)
{
Shell.SetBackButtonBehavior(this, new BackButtonBehavior
{
IsEnabled = true
});
}
// Button click to hide Back Button
private void Button_Clicked_Hide(object sender, EventArgs e)
{
Shell.SetBackButtonBehavior(this, new BackButtonBehavior
{
IconOverride = "null.png", // null.png not exists in project ,just want
программа для отображения пустой кнопки «Назад» IsEnabled = false}); }
Я покажу эффект с Gif:
Также мне нужно перенаправление, когда пользователь покидает приложение, и снова введите его в зависимости от истекшего времени, чтобы перенаправить на страницу preLogin (вход в систему) или разрешить ему напрямую postLogin (полный доступ к приложению), поэтому мне могут понадобиться два класса AppShell и назвать его различными оболочками OnResume ()?
Об этом вопросе есть Предложение для вас, вы можете подумать, что подойдет для ваших нужд.
Вы можете использовать Navigation.PushModalAsync(new LoginPage())
для перенаправления на страницу preLogin на основе истекшего времени. В противном случае используйте Shell.Current.GoToAsync(route)
для навигации. Вы можете справиться с ними в методе OnResume
.
Например, следующим образом:
protected override void OnResume()
{
if(time > xxx)
{
Navigation.PushModalAsync(new LoginPage());
}
else
{
Shell.Current.GoToAsync(route);
}
}
Здесь используется PushModalAsync
для входа на страницу, которая является страницей модели. После использования Navigation.PopModalAsync()
можете закрыть LoginPage и перенаправить на другую страницу с помощью Shell.Current.GoToAsync(route)
.