6

所以我们知道,如果新的视图控制器被推送到导航控制器的堆栈中,UINavigationController 会自动显示返回按钮。如果在前一个视图控制器中没有设置标题,后退按钮显示默认的“后退”标题。如果我在前一个视图控制器中设置标题,后退按钮会显示该标题。这是它的样子:

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

在此处输入图像描述
这是预期的行为,我很好。

问题是我的应用程序已本地化为 3 种不同的语言。我手动本地化所有控制器的标题,所以当完整的标题显示在后退按钮中时,一切都很好。

当(本地化)标题太长并且它被替换为默认“返回”标题时会出现问题,该标题是英语(或默认语言,在 iOS 设置中指定)而不是我的应用程序当前显示的语言。

所以我的问题是只有当前一个控制器的标题太长时,我才能手动设置返回按钮标题?

我应该补充一点,我尝试像这样替换默认的后退按钮:

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

它工作正常,但后退按钮标题变为“静态”并且从不显示前一个控制器的标题。

4

1 回答 1

5

iOS 在回退文本过长时提供本地化。你只需要告诉 iOS 你支持这样的语言:

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

另请参阅: 如何更改 UITabBarController 更多按钮的标题?

于 2017-05-12T14:12:17.983 回答