Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用按钮更改iphone应用程序语言,无需重新启动应用程序_Iphone_Objective C_Ios_Localization_Nslocalizedstring - Fatal编程技术网

使用按钮更改iphone应用程序语言,无需重新启动应用程序

使用按钮更改iphone应用程序语言,无需重新启动应用程序,iphone,objective-c,ios,localization,nslocalizedstring,Iphone,Objective C,Ios,Localization,Nslocalizedstring,我想更改我的应用程序的语言。目前,我正在用下面的方法做这件事。 我有两个按钮,用于更改NSUserDefault中的语言。但在这影响我的应用程序之前,我需要重新启动它 这是我的密码 - (IBAction)changeDutch:(id)sender { [[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"nl", @"en", nil] forKey:@"AppleLanguages"

我想更改我的应用程序的语言。目前,我正在用下面的方法做这件事。 我有两个按钮,用于更改NSUserDefault中的语言。但在这影响我的应用程序之前,我需要重新启动它

这是我的密码

- (IBAction)changeDutch:(id)sender {
    [[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"nl", @"en", nil] forKey:@"AppleLanguages"];

}
- (IBAction)changeEnglish:(id)sender {
    [[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"en", @"nl", nil] forKey:@"AppleLanguages"];
}
这个很好用。但我不想每次都重新启动我的应用程序。谁能告诉我怎么做


亲切的问候

如果您的数据位于
UITableView
中,则可以使用
[tableView reloadData]
您甚至可以在
appDelegate
中设置应用程序语言,在常量、键中定义,然后在
iAction
上调用这些键,然后将其存储在
NSUserDefaults
中,我的意思是问,您使用哪种方式进行本地化,是我们仅维护文件夹结构的本机语言还是从Db获取的本机语言

无论如何,如果您使用的是本机部件,请查看以下链接,这可能会对您有所帮助,因为我认为我们可以在此处替换语言选项:

"http://stackoverflow.com/questions/3910244/getting-current-device-language-in-ios" (坦白说,我不知道)

但如果您使用的是db部分,那么在这种情况下,您只需使用一些基于枚举的技巧,并根据这些技巧获取数据,这种方法很简单,因为我已经在很多应用程序中应用过


如果有任何问题,请回复我。:)

查看以下内容:


它取代了默认的本地化框架。它有一个演示,演示了如何在不重新启动应用程序的情况下更改语言。

有一种方法可以在不重新启动的情况下更改应用程序语言。我在一个应用程序中尝试过这一方法,它基本上可以正常工作,但如果您使用的是系统项,如选项卡栏中的
More
选项卡,
MoreNavigationController上的
Edit
按钮和
UISearchBar上的
Cancel
按钮等,如果不重新启动应用程序,无法更改所选语言的文本。如果没有这样的项目是由iOS而不是你的应用程序控制的,这对你来说是一个完美的解决方案。

尝试遵循这个解决方案,它对我有帮助