我正在将应用翻译成印度尼西亚语。故事板使用导航控制器并为其所有视图推送segue。当我从主菜单进入视图时,后退按钮被正确翻译,但是当我从那里进入视图时(远离主菜单的两个视图),后退按钮显示“返回”。在此先感谢您的帮助。
答案 0 :(得分:17)
请在“App”-Info.plist中检查设置“本地化本机开发区域”,并将您的默认语言更改为“id”for Indonesian。如其他网站所述,这会影响iOS默认按钮上的语言,如“编辑”或“完成”。
答案 1 :(得分:6)
无论如何,要更改后退按钮的标题,您必须考虑必须解决PARENT-Controller,而不是详细视图控制器。
在将子视图推送到导航控制器之前,可能在prepareForSegue-Method中,执行以下操作:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@”Back” style:UIBarButtonItemStyleBordered target:nil action:nil];
[[self navigationItem] setBackBarButtonItem:backButton];
[backButton release];
}
答案 2 :(得分:1)
对于Swift,请使用以下命令:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "mySegueIdentifier" {
let backButton = UIBarButtonItem(title: "MYLOCALISEDSTRING", style: UIBarButtonItemStyle.plain, target: nil, action: nil)
self.navigationItem.backBarButtonItem = backButton
}
}
这将更改默认的后退按钮,如下所示:
答案 3 :(得分:1)
如果您要手动推送到另一个视图控制器,则举个例子:
@IBAction func actionOpenSettings(_ sender: UIButton) {
if let settingsVC = self.storyboard?.instantiateViewController(withIdentifier: "SettingsViewControllerID") as? SettingsViewController {
self.navigationItem.backBarButtonItem = UIBarButtonItem(title: "Back".localized(), style: .plain, target: nil, action: nil)
self.navigationController?.pushViewController(settingsVC, animated: true)
}
}
答案 4 :(得分:0)
我不确定问题究竟是什么,但使用AGi18n库可能有所帮助。它根据localizable.strings文件强制.xibs进行本地化。因此,如果.xib包含“back”,并且localizable.strings具有“Back”规则,则它将被本地化。
的下半部分使用该库的教程答案 5 :(得分:0)
我发现如果在Storyboard文件中设置了父视图控制器的navigationItem.backBarButtonItem.title字符串,则稍后添加的任何更改(例如在推送的ViewController的viewWillAppear中)将被忽略。检查故事板中的父控制器是否为后退按钮设置了文本。在父控制器中本地化self.navigationItem.backBarButtonItem.title为我修复了它。