问题描述
我正在使用用户默认值更改“appleLanguages”,然后从 rootViewController 重新启动应用程序。但应用程序语言并没有改变。它正在重新启动应用程序,但不适用于按钮操作。检查以下代码以了解我尝试过的内容
使用以下功能更改应用语言
@IBAction func hindiAction(_ sender:Any){
UserDefaults.standard.set(["hi"],forKey: "AppleLanguages")
UserDefaults.standard.synchronize()
restartApplication()
}
@IBAction func englishAction(_ sender:Any){
UserDefaults.standard.set(["en"],forKey: "AppleLanguages")
UserDefaults.standard.synchronize()
restartApplication()
}
func restartApplication () {
dispatchQueue.main.asyncAfter(deadline: .Now() + 0.5) {
let storyBoard: UIStoryboard = UIStoryboard(name: "Main",bundle: nil)
let controller = storyBoard.instantiateViewController(withIdentifier: "FirstViewController") as! FirstViewController
let vc = UINavigationController(rootViewController: controller)
vc.modalPresentationStyle = .fullScreen
self.present(vc,animated: false) {
}
dispatchQueue.main.asyncAfter(deadline: .Now() + 1.0) {
NotificationCenter.default.post(name: Notification.Name(rawValue: "language"),object: nil,userInfo: nil)
}
}
}
重新启动根视图控制器后,我尝试检查控制台中为“AppleLanguages”存储的值,但即使我将其更改为“hi”,我也总是得到“en”
po print(UserDefaults.standard.value(forKey: "AppleLanguages")!)
(
en
)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)