本地化的UITabBarItem“返回”标题。

5

当UINavigationController中前一个UIViewController的文本过长时,UITabBarItem会显示“返回”("Back")。

在我的应用程序中,我允许用户通过以下代码更改语言:

[[NSUserDefaults standardUserDefaults] setObject:locale forKey:@"locale"];
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:locale, nil] forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize];

locale是指"en"或者"es"等等。

我将后退文本添加到了本地化文件中。当用户打开应用程序时,它会根据本地化文件中的文本显示“返回”。但是如果用户使用上述代码更改语言,则需要重新启动应用程序才能使AppleLanguages包中的更改生效。

我还需要翻译UIPickerController上的文本,例如“删除”。

如何解决这个问题,使得用户不需要在设置区域设置后重启应用程序?


1
请查看此帖子,它可能是一个有效的解决方案 https://dev59.com/dl3Va4cB1Zd3GeqPEdyQ - Luca Iaco
不确定 - 这是用于特定的FB实现。我不明白谁在AppDelegate中调用get方法来处理返回按钮。 - Dejell
2
为什么不尊重设备语言,而不是试图在应用程序中设置它呢? - danielbeard
这是我收到的要求。让用户能够选择应用程序的不同语言。 - Dejell
3个回答

2

抱歉,我再次检查了一下,但它并没有改变UIPickerController的值,例如取消。 - Dejell
嗨,我需要重新启动应用程序,以便元素(如UIImagePicker)中的更改也采用新的语言更改。我正在寻找一些东西,使用户不需要为Apple组件重新启动应用程序(常规文本运行良好)。 - Dejell

1

更改UIPickerController的值,这会对我有帮助吗? - Dejell

0
在您的视图控制器上,您可以手动设置“返回”文本为任何您喜欢的内容:
UIBarButtonItem *backButton = [[UIBarButtonItem alloc]
                                           initWithTitle:NSLocalizedString(@"Back", nil)
                                           style:UIBarButtonItemStyleBordered
                                           target:nil action:nil];

[self.navigationItem setBackBarButtonItem: backButton];

如果用户更改了语言,只需再次运行代码以重置后退栏按钮项。
我建议在抽象子类中执行此操作,这样您就不需要在每个地方都执行此代码。
“如果我需要UIImagePicker文本的相同内容怎么办?”
UIImagePickerController是UINavigationController的子类,因此:
UIImagePickerController *imagePicker = //make your image picker…
imagePicker.delegate = self;

- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
    UIViewController *vc = [[navigationController viewControllers] lastObject];
    [vc.navigationItem setBackBarButtonItem: backButton];
}

如果我需要相同的UIImagePicker文本怎么办? - Dejell
@Dejel 更新了一个示例。你只需要更改navigationItem的backBarButtonItem即可。 - Aaron Brager
谢谢 - 但是UIImagePicker有像“选择”这样的文本,我如何控制这个文本? - Dejell
查找UINavigationItem - 您可以更改其标题。https://developer.apple.com/library/ios/documentation/uikit/reference/UINavigationItem_Class/Reference/UINavigationItem.html - Aaron Brager
此外,这些后续问题与您最初的问题无关(它们应该作为不同的问题单独发布)。 - Aaron Brager
UIImagePicker中的文本与UINavigationItem有什么关系? - Dejell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接