Как мне сохранить значение переменной? - PullRequest
0 голосов
/ 22 сентября 2018

Вот краткое объяснение моего кода:

var myVar = 0

if (button image is equal to "mybutton image") {
    myVar = 1
    print("It works")
} else {
    myVar = 2
    print("Not working")
}

ButtonPress {
    print(myVar)
}

Проблема здесь в том, что когда я запускаю приложение, я вижу в консоли, что оно печатает "оно работает", но когда я нажимаю кнопку myVar снова равно 0.Как мне убедиться, что при нажатии кнопки myVar будет равно 1?

Вот полный требуемый код:

@IBAction func ThingyButtton(_ sender: UIButton) {
    if let ButtonImage = myButton.image(for: .normal),
       let Image = UIImage(named: "LoseWeightGreen.png"),
       UIImagePNGRepresentation(ButtonImage) == UIImagePNGRepresentation(Image) {
        thingy = 1
        print("1")
    } else {
        thingy = 2
        print("2")
    }
}

@IBAction func ButtonThingyN(_ sender: UIButton) {
    if(thingy == 1) {
        print("ok")
        let storyboard = UIStoryboard(name: "let", bundle: nil)
        let secondVC = storyboard.instantiateViewController(withIdentifier: "FirstVC")as! FirstVC
        self.navigationController?.pushViewController(secondVC, animated: true) 
    } else{
        print("good")
        let storyboard = UIStoryboard(name: "let", bundle: nil)
        let secondVC = storyboard.instantiateViewController(withIdentifier: "SecondVC")as! SecondVC
        self.navigationController?.pushViewController(secondVC, animated: true)  
    }    
}

Ответы [ 2 ]

0 голосов
/ 22 сентября 2018

Я смог сделать это с помощью UserDefaults

Просто я просто установил userdefults на 1 и 2, а затем проверил их с помощью оператора if!

0 голосов
/ 22 сентября 2018

Как я объяснил в моем комментарии, вам нужна немного другая логика, попробуйте использовать переключатель вместо, если еще как следует,

@IBAction func ThingyButtton(_ sender: UIButton) {
    let defaults = UserDefaults.standard
    if let ButtonImage = myButton.image(for: .normal),
       let Image = UIImage(named: "LoseWeightGreen.png"),
       UIImagePNGRepresentation(ButtonImage) == UIImagePNGRepresentation(Image) {
        defaults.set(1, forKey: "thingy")
        defaults.synchronize()
        print("1")
    } else {
        defaults.set(2, forKey: "thingy")
        defaults.synchronize()

        print("2")
    }
}



@IBAction func ButtonThingyN(_ sender: UIButton) {
    let defaults = UserDefaults.standard
    if defaults.object(forKey: "thingy") != nil {
          let thingy = defaults.integer(forKey: "thingy")
          let storyboard = UIStoryboard(name: "let", bundle: nil)
          switch thingy{
              case 1:
                  var moveTo = storyboard.instantiateViewController(withIdentifier: "FirstVC") as! FirstVC
          self.navigationController?.pushViewController(moveTo, animated: true)

                  break
              case 2:
                 var moveTo = storyboard.instantiateViewController(withIdentifier: "SecondVC") as! SecondVC
          self.navigationController?.pushViewController(moveTo, animated: true)

                  break
              default:
                  print("Thingy value is \(thingy)")
                  return
          }
     }



}
...