据我们所知,如果新的 View Controller 被推送到导航 Controller 的堆栈,UINavigationController 会自动显示后退按钮。如果标题没有在以前的 View Controller 中设置,后退按钮显示默认的“后退”标题。如果我在以前的 View Controller 中设置标题,后退按钮会显示该标题。这是它的样子:
尽管有时,如果该标题太长,后退按钮标题会更改为默认的“后退”。然后看起来像这样:
这是预期的行为,我对此没有意见。
问题是我的应用程序已本地化为 3 种不同的语言。我手动本地化所有 Controller 的标题,所以当完整的标题显示在后退按钮中时,一切都很好。
当(本地化的)标题太长并且它被替换为默认的“返回”标题时会出现问题,该标题是英语(或默认语言,在 iOS 设置中指定)而不是我的应用程序当前显示的语言。
所以我的问题是,只有当前一个 Controller 的标题太长时,如何才能手动设置后退按钮标题?
我应该补充一点,我尝试像这样替换默认的后退按钮:
this.NavigationItem.BackBarButtonItem = new UIBarButtonItem (localizedBackTitle, UIBarButtonItemStyle.Plain, null);
它工作正常,但后退按钮标题变为“静态”并且从不显示先前 Controller 的标题。
最佳答案
iOS 为过长的回退文本提供本地化。你只需要告诉 iOS 你支持这样的语言:
<key>CFBundleLocalizations</key>
<array>
<string>en</string>
<string>ja</string>
</array>
关于ios - 如何更改缩短的后退按钮标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36482029/