Как изменить сокращенное название кнопки "Назад"?

Итак, как мы знаем, UINavigationController автоматически представляет кнопку "Назад", если новый контроллер представления был помещен в стек контроллера навигации. Если заголовок не был установлен в предыдущем контроллере представления, кнопка "Назад" отображает заголовок "Назад" по умолчанию. Если я установил заголовок в предыдущем контроллере вида, кнопка "Назад" показывает этот заголовок Вот как это выглядит:

Вернуться название
Хотя иногда, если этот заголовок слишком длинный, заголовок кнопки "Назад" меняется на "Назад" по умолчанию. Тогда это выглядит так:


Это ожидаемое поведение, и я в порядке.

Проблема в том, что мое приложение локализовано на 3 разных языка. Я локализую названия всех контроллеров вручную, поэтому, когда в кнопке "Назад" отображается полный заголовок, все в порядке.

Проблема возникает, когда (локализованный) заголовок слишком длинный и заменяется заголовком по умолчанию "Назад", который написан на английском языке (или на языке по умолчанию, указанном в настройках iOS), а не на том языке, который отображается в моем приложении.

Поэтому мой вопрос заключается в том, как вручную установить заголовок кнопки назад, только если заголовок предыдущего контроллера слишком длинный?

Я должен добавить, что я попытался заменить кнопку "Назад" по умолчанию следующим образом:

this.NavigationItem.BackBarButtonItem = new UIBarButtonItem (localizedBackTitle, UIBarButtonItemStyle.Plain, null);

Работает нормально, но заголовок кнопки назад становится "статичным" и никогда не показывает заголовок предыдущего контроллера.

1 ответ

iOS обеспечивает локализацию для запасного текста, когда он слишком длинный. Вам нужно только сказать iOS, что вы поддерживаете язык следующим образом:

<key>CFBundleLocalizations</key>
   <array>
     <string>en</string>
     <string>ja</string>
   </array>

Смотрите также: Как изменить заголовок кнопки UITabBarController More?

Другие вопросы по тегам