【发布时间】:2020-04-02 15:37:34
【问题描述】:
我在所有视图控制器中都有按钮来更改语言
LanguageViewController.swift
class LanguageViewController: UIViewController {
@IBAction func actionChange(_ sender: Any) {
L102Language.currentAppleLanguage()
L102Language.setAppleLAnguageTo(lang: "en")
// below code to refresh storyboard
self.viewDidLoad()
}
}
L102Language.swift
class func currentAppleLanguage() -> String{
let userdef = UserDefaults.standard
let langArray = userdef.object(forKey: APPLE_LANGUAGE_KEY) as! NSArray
let current = langArray.firstObject as! String
let endIndex = current.startIndex
let currentWithoutLocale = current.substring(to: current.index(endIndex, offsetBy: 2))
return currentWithoutLocale
}
/// set @lang to be the first in Applelanguages list
class func setAppleLAnguageTo(lang: String) {
let userdef = UserDefaults.standard
userdef.set([lang,currentAppleLanguage()], forKey: APPLE_LANGUAGE_KEY)
userdef.synchronize()
}
我在我所有的 FirstViewCONtroller、SecondController 中都继承了 LanguageViewController,如下所示
class FirstViewController: LanguageViewController {
}
class SecondController: LanguageViewController {
}
如果我调用 self.viewDidLoad() 它无法从情节提要中定义的视图更改语言。如果单击任何视图控制器中的任何按钮,如何重新加载情节提要,以便所有视图控制器中的语言都应更改?谢谢!
【问题讨论】:
标签: ios swift uiviewcontroller localization viewcontroller