.Net MAUI — название кнопки «Назад» для навигации в оболочке (iOS)
Я заметил одну проблему в заголовке Shell Navigation. При настройке свойства ContentPage Title он также отображает тот же текст с кнопкой «Назад». Используемое свойство NavigationPage.BackButtonTitle также из xaml по-прежнему не работает.
Например:
Домашняя страница.xaml
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Switch_Bug.HomePage"
NavigationPage.BackButtonTitle="Back"
Title="Home Page">
<VerticalStackLayout>
<Label
Text="Welcome to .NET MAUI!"
VerticalOptions="Center"
HorizontalOptions="Center" />
</VerticalStackLayout>
</ContentPage>
Результат:
Ожидаемый результат:
В iOS текст кнопки «Назад» должен быть «Назад», иначе просто показать кнопку «Назад». Но он показывает текст заголовка страницы.
Обновление 02.02.2023
Основная проблема заключается в том, что если заголовок страницы короткий, он будет отображаться так же с кнопкой «Назад», а если заголовок достаточно длинный, он будет работать нормально.
О той же проблеме сообщалось и в репозитории MAUI git. https://github.com/dotnet/maui/issues/11691
2 ответа
NavigationPage.BackButtonTitle
применимо кNavigation.PushAsync
в NavigationPage, но не в Shell. В навигации Shell есть соответствующий метод для изменения текста кнопки «Назад». Я сделал простой тест, и вы можете изменить свой код следующим образом:
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Switch_Bug.HomePage"
Title="Home Page">
<VerticalStackLayout>
<Label
Text="Welcome to .NET MAUI!"
VerticalOptions="Center"
HorizontalOptions="Center" />
</VerticalStackLayout>
<Shell.BackButtonBehavior>
<BackButtonBehavior TextOverride="Back" />
</Shell.BackButtonBehavior>
</ContentPage>
Для получения более подробной информации вы можете обратиться к официальной документации:Навигация по оболочке .NET MAUI.
- Прежде всего, я считаю, что BackButtonTitle будет работать только для iOS, поскольку Android не использует «задние заголовки».
- Во-вторых, BackButtonTitle может быть немного нелогичным, но это заголовок, который будет отображаться на следующей странице, которая возвращает на страницу, которую вы определили. В вашем случае установка BackButtonTitle на вашей домашней странице на «назад» не устанавливает кнопку «назад» на домашней странице на «назад»; он установит кнопку «Назад» в положение «назад» на любой странице, которая имеет обратную навигацию на домашнюю страницу. Надеюсь, это имеет смысл.