.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 на вашей домашней странице на «назад» не устанавливает кнопку «назад» на домашней странице на «назад»; он установит кнопку «Назад» в положение «назад» на любой странице, которая имеет обратную навигацию на домашнюю страницу. Надеюсь, это имеет смысл.
Другие вопросы по тегам