ios - 如何更改缩短的后退按钮标题?

标签 ios localization uinavigationcontroller xamarin.ios backbarbuttonitem

据我们所知,如果新的 View Controller 被推送到导航 Controller 的堆栈,UINavigationController 会自动显示后退按钮。如果标题没有在以前的 View Controller 中设置,后退按钮显示默认的“后退”标题。如果我在以前的 View Controller 中设置标题,后退按钮会显示该标题。这是它的样子:

Back title
尽管有时,如果该标题太长,后退按钮标题会更改为默认的“后退”。然后看起来像这样:

enter image description here
这是预期的行为,我对此没有意见。

问题是我的应用程序已本地化为 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>

另见: How to change UITabBarController More button's title?

关于ios - 如何更改缩短的后退按钮标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36482029/

相关文章:

swift - 栏按钮未出现在 PageViewController 中

android - http post请求改变ios中json对象的顺序(ionic 3)

ios - 在 uibutton 中绑定(bind) Action -Reactive Cocoa

objective-c - 如何在用户的语言环境中获取星期几的名称?

iphone - 用 UIView 替换 UINavigationControllers NavigationBar

ios - 执行 segue 后,嵌入式导航栏在 iOS 7(小屏幕)上消失,但在 iOS 9(大屏幕)上不消失

iphone - bool 值未记录在 NSUserDefaults 中

ios - 添加和保存新联系人到地址簿

asp.net - 在 ASP.NET 中覆盖标准程序集中的资源

c# - WPF 运行时区域设置更改,重新评估 ValueConverters UI