В моем приложении доступно несколько языков.
Я хочу сделать это так, чтобы «Language Settings-Btn» находилось в открывающемся VC. Язык по умолчанию будет английский, но пользователь может перейти на другие языки в tableView, доступ к которому осуществляется с помощью этой кнопки.
Моя текущая попытка (и это, возможно, не самый умный способ сделать это) состоит в том, что я создал класс Realm с именем Language, а затем прикрепил кнопки ко всем ячейкам в LanguageSettingTableView. При нажатии одной из кнопок (языков) пользователь изменяет Language.diaryLanguage на то, что представляет собой нажатая кнопка.
Тогда я сел на заявление переключателя, например, мой welcomeScreenVC, где у меня сейчас четыре разных случая; Английский, испанский, датский, немецкий (только для начинающих).
Итак, я хочу установить выражение if (я полагаю?) Внутри viewWillAppear, в котором я заявляю: if Language.diaryLanguage == "English" -> Present case .english и т. Д. Но я не могу кажется, чтобы выяснить, как достичь этих различных случаев.
Вот мой соответствующий код в welcomeScreenVC:
import UIKit
import RealmSwift
enum LanguageMode {
case english
case spanish
case danish
case german
}
class WelcomeScreen: UIViewController {
var getStartedBtn = UIButton ()
var informationBtn = UIButton ()
var seeAllDiariesBtn = UIButton ()
var languageSettingsBtn = UIButton ()
var currentLanguage = Language()
var mode: LanguageMode = .english
private func modeUpdate() {
switch mode {
case .english:
getStartedBtn.setTitle("Create new People Diary", for: .normal)
informationBtn.setTitle("Read More", for: .normal)
seeAllDiariesBtn.setTitle("See all People Diaries", for: .normal)
languageSettingsBtn.setTitle("Language", for: .normal)
case .danish:
getStartedBtn.setTitle("Lav ny People Diary", for: .normal)
informationBtn.setTitle("Læs Mere", for: .normal)
seeAllDiariesBtn.setTitle("Se alle People Diaries", for: .normal)
languageSettingsBtn.setTitle("Sprog", for: .normal)
case .spanish:
getStartedBtn.setTitle("Hace nuevo People Diary", for: .normal)
informationBtn.setTitle("Lees Mas", for: .normal)
seeAllDiariesBtn.setTitle("Mirra todos People Diaries", for: .normal)
languageSettingsBtn.setTitle("Idiomas", for: .normal)
case .german:
getStartedBtn.setTitle("Bla bla Bla", for: .normal)
informationBtn.setTitle("Bla bla bla", for: .normal)
seeAllDiariesBtn.setTitle("Bla bla", for: .normal)
languageSettingsBtn.setTitle("Bla bla", for: .normal)
}
}
override func viewWillAppear(_ animated: Bool) {
self.navigationController?.setNavigationBarHidden(true, animated: animated)
super.viewWillAppear(animated)
if currentLanguage.diaryLanguage == "English" {
// Then present case .english ...
} else if currentLanguage.diaryLanguage == "Danish" {
// Present case .danish ...
} else if currentLanguage.diaryLanguage == "Spanish" {
// Present case .spanish ...
} else if currentLanguage.diaryLanguage == "German" {
// Present case .german ...
} else {
// present .english (pr. default)
}
modeUpdate()
}
Надеюсь, кто-нибудь подскажет, как этого добиться.
Спасибо заранее!