ich den Zustand der UISegmentedControl in swift3 speichern haben eine UISegmentedControl langSeg mit zwei Indizes markierten genannt [Englisch & Deutsch], die die Sprache von Etiketten in meiner App steuert unter Verwendung des Codes:Wie mit userDefaults
@IBAction func indexChanged(sender: UISegmentedControl) {
switch langSeg.selectedSegmentIndex
{
case 0:
let language = "en"
let path = Bundle.main.path(forResource: language, ofType: "lproj")
let bundle = Bundle(path: path!)
headerLbl.text = bundle?.localizedString(forKey: "HLbl", value: nil, table: nil)
UserDefaults.standard.set(["en"], forKey: "AppleLanguages")
case 1:
let language = "de"
let path = Bundle.main.path(forResource: language, ofType: "lproj")
let bundle = Bundle(path: path!)
descLbl.text = bundle?.localizedString(forKey: "DLbl", value: nil, table: nil)
UserDefaults.standard.set(["de"], forKey: "AppleLanguages")
default:
break;
}
}
, um zwischen Englisch und Deutsch zu wechseln und die Auswahl des Benutzers zu speichern; Dieser Code funktioniert gut, aber wenn ich meine App neu starte, nachdem ich beispielsweise die Sprache auf Deutsch geändert habe, werden die Label-Titel in deutscher Sprache gespeichert, aber der segmentierte Control-Status wurde zurück in den englischen Titel [Index 0] geändert. Bitte, ich brauche Hilfe, um die Benutzerauswahl des UISegmentedControl zu speichern, jede Hilfe wird wirklich geschätzt. Ich habe versucht, diesen Code:
langSeg.selectedSegmentIndex = sender.selectedSegmentIndex
UserDefaults.standard.integer(forKey: "SegmentIndex")
innen
@IBAction func indexChanged(sender: UISegmentedControl)
Nach den Schalterhalter, aber leider hat es nicht funktioniert ...
Danke @Alan, es funktioniert :) – SwiftyLearner