Как изменить сокращенное название кнопки "Назад"?
Итак, как мы знаем, 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?