У меня есть кнопка во всех view-контроллерах для изменения языка
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()
}
Я унаследовал LanguageViewController во всех моих FirstViewCOntroller, SecondController, как показано ниже
class FirstViewController: LanguageViewController {
}
class SecondController: LanguageViewController {
}
Если я вызываю self.viewDidLoad (), он не может изменить язык из представления, определенного в раскадровке. Как перезагрузить раскадровку, чтобы язык во всех viewcontroller менялся, если нажата какая-либо кнопка из любого viewcontroller? Спасибо!