Möchte ein Variable speichern

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Möchte ein Variable speichern

    Hallo :)

    ich bin neu in x code und möchte eine variabel speichern wenn man aus der app geht und wieder in die app rein geht.
    Doch es funktioniert nicht. :/
    Gabt ihr Ideen ?

    <Mein versuch:

    import UIKit


    var Anfang = 0


    class ViewControllerlevel: UIViewController {


    @IBOutlet weak var Geschichte: UIButton!
    @IBOutlet weak var Geo: UIButton!
    @IBOutlet weak var Astro: UIButton!
    @IBOutlet weak var Politik: UIButton!
    @IBOutlet weak var Umwelt: UIButton!
    @IBOutlet weak var Sport: UIButton!


    override func viewDidLoad() {
    super.viewDidLoad()
    if Anfang == 0{
    Geschichte.isHidden = false
    Geo.isHidden = false
    Astro.isHidden = false
    Politik.isHidden = false
    Umwelt.isHidden = false
    Sport.isHidden = false
    }
    if Anfang == 1{
    Geschichte.isHidden = false
    Geo.isHidden = true
    Astro.isHidden = true
    Politik.isHidden = true
    Umwelt.isHidden = true
    Sport.isHidden = true
    }
    if Anfang == 2{
    Geschichte.isHidden = true
    Geo.isHidden = false
    Astro.isHidden = true
    Politik.isHidden = true
    Umwelt.isHidden = true
    Sport.isHidden = true
    }
    if Anfang == 3{
    Geschichte.isHidden = true
    Geo.isHidden = true
    Astro.isHidden = false
    Politik.isHidden = true
    Umwelt.isHidden = true
    Sport.isHidden = true
    }
    if Anfang == 4{
    Geschichte.isHidden = true
    Geo.isHidden = true
    Astro.isHidden = true
    Politik.isHidden = false
    Umwelt.isHidden = true
    Sport.isHidden = true
    }
    if Anfang == 5{
    Geschichte.isHidden = true
    Geo.isHidden = true
    Astro.isHidden = true
    Politik.isHidden = true
    Umwelt.isHidden = false
    Sport.isHidden = true
    }
    if Anfang == 6{
    Geschichte.isHidden = true
    Geo.isHidden = true
    Astro.isHidden = true
    Politik.isHidden = true
    Umwelt.isHidden = true
    Sport.isHidden = false
    }


    UserDefaults.standard.integer(forKey: "intKey")




    [i]// Do any additional setup after loading the view.[/i]
    }
    @IBAction func Geschichte2(_ sender: Any) {
    if Anfang == 0{
    Anfang = 1


    Geschichte.isHidden = false
    Geo.isHidden = true
    Astro.isHidden = true
    Politik.isHidden = true
    Umwelt.isHidden = true
    Sport.isHidden = true
    UserDefaults.standard.set(Anfang, forKey: "intKey")
    }
    }
    @IBAction func Geo2(_ sender: Any) {
    if Anfang == 0{
    Anfang = 2
    Geschichte.isHidden = true
    Geo.isHidden = false
    Astro.isHidden = true
    Politik.isHidden = true
    Umwelt.isHidden = true
    Sport.isHidden = true
    }
    }
    @IBAction func astro2(_ sender: Any) {
    if Anfang == 0{
    Anfang = 3
    Geschichte.isHidden = true
    Geo.isHidden = true
    Astro.isHidden = false
    Politik.isHidden = true
    Umwelt.isHidden = true
    Sport.isHidden = true
    }
    }
    @IBAction func Politik2(_ sender: Any) {
    if Anfang == 0{
    Anfang = 4
    Geschichte.isHidden = true
    Geo.isHidden = true
    Astro.isHidden = true
    Politik.isHidden = false
    Umwelt.isHidden = true
    Sport.isHidden = true
    }
    }
    @IBAction func Umwelt5(_ sender: Any) {
    if Anfang == 0{
    Anfang = 5
    Geschichte.isHidden = true
    Geo.isHidden = true
    Astro.isHidden = true
    Politik.isHidden = true
    Umwelt.isHidden = false
    Sport.isHidden = true
    }
    }
    @IBAction func Sport(_ sender: Any) {
    if Anfang == 0{
    Anfang = 6
    Geschichte.isHidden = true
    Geo.isHidden = true
    Astro.isHidden = true
    Politik.isHidden = true
    Umwelt.isHidden = true
    Sport.isHidden = false
    }
    }


    [i]/*[/i]
    [i] // MARK: - Navigation[/i]


    [i] // In a storyboard-based application, you will often want to do a little preparation before navigation[/i]
    [i] override func prepare(for segue: UIStoryboardSegue, sender: Any?) {[/i]
    [i] // Get the new view controller using segue.destination.[/i]
    [i] // Pass the selected object to the new view controller.[/i]
    [i] }[/i]
    [i] */[/i]






    override func viewDidAppear(_ animated: Bool) {
    UserDefaults.standard.set(Anfang, forKey: "intKey")
    }


    }

    Danke im Voraus
  • Hallo!

    Hast du schon alles gelöst? Sonst versuch' mal die Blöcke der Form

    C-Quellcode

    1. if Anfang = 0 {
    2. Geschichte.isHidden = false
    3. Geo.isHidden = false
    4. Astro.isHidden = false
    5. Politik.isHidden = false
    6. Umwelt.isHidden = false
    7. Sport.isHidden = false
    8. }
    zu reduzieren. Das geht ganz einfach mit einem Property Observer.
    Und die Konstanten muss man durch passende Ausdrücke ersetzen.
    IsHidden ist nur false, wenn Anfang weder 0 noch der entsprechende
    zum Button gehörende Wert. Dann bleibt nur ein solcher Block, bei
    dem man leicht sehen kann, wann isHidden wie gesetzt wird - statt
    in 7 Methoden schauen zu müssen.

    Quellcode

    1. var Anfang : Int = 0
    2. {
    3. didSet
    4. {
    5. Geschichte.isHidden = (Anfang != 0 && Anfang != 1)
    6. Geo.isHidden = (Anfang != 0 && Anfang != 2)
    7. Astro.isHidden = (Anfang != 0 && Anfang != 3)
    8. Politik.isHidden = (Anfang != 0 && Anfang != 4)
    9. Umwelt.isHidden = (Anfang != 0 && Anfang != 5)
    10. Sport.isHidden = (Anfang != 0 && Anfang != 6)
    11. }
    12. }
    Alles anzeigen
    Dann können alle anderen Blöcke der Art raus und insbesondere auch
    in den Actions. Dort verbleibt die Zuweisung zu Anfang. Man muss nicht
    mehr so viel lesen und kann die gesamte Datei besser erfassen.

    Mehr Swift typisch wäre es dann vermutlich, den Typ der Variablen Anfang
    von Int in einen dafür neu erstellten enum-Typen zu ändern.