为什么我不能为我的变量添加数字?!在Swift 3中

时间:2017-05-15 05:51:05

标签: ios uiviewcontroller swift3 append

我在向我的整数变量添加或添加数字时遇到问题!

我必须查看控制器,在第一个中我有这些代码:

    var checkSahafi = Int()

    if sahafi.isSelected == true {
            print("sahafi Selected")
             self.checkSahafi += 1
            performSegue(withIdentifier: "secondStep", sender: self)

        } else  if safheArayi.isSelected == true {
            print("safheArayi Selected")
            self.checkSahafi += 2
            performSegue(withIdentifier: "secondStep", sender: self)

        } else if laminet.isSelected == true {
        print("laminet Selected")
            self.checkSahafi += 3
            performSegue(withIdentifier: "secondStep", sender: self)

    } else if simpichi.isSelected == true {
        print("simpichi Selected")
            self.checkSahafi += 4
            performSegue(withIdentifier: "secondStep", sender: self)

    }

在第二个View Controller中我有这个方法:

    let checkNum = firstViewController().checkSahafi

    override func viewDidLoad() {
          super.viewDidLoad()

    print("\(checkNum)")
    print("\(checkNum)")
    print("\(checkNum)")
    print("\(checkNum)")

    }

但该应用只是打印0 我如何追加这些数字?!

请记住,我也使用了checksahafi.append方法并且没有得到结果!

1 个答案:

答案 0 :(得分:1)

您从FirstViewController的全新实例中获得价值的问题是,您需要使用控制器覆盖prepareForSegue并传递值。

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if let vc = segue.destination as? SecondViewController {
        vc.checkNum = self.checkSahafi
    }
}

现在只需更改checkNumSecondViewController的声明即可。

var checkNum = Int()

override func viewDidLoad() {
    super.viewDidLoad()
    print("\(checkNum)")
}

不是在每个if条件中多次调用performSegue(withIdentifier:sender:),而是在所有if条件之后最后调用它

if sahafi.isSelected == true {
    print("sahafi Selected")
    self.checkSahafi += 1
}
else if safheArayi.isSelected == true {
    print("safheArayi Selected")
    self.checkSahafi += 2
}
else if laminet.isSelected == true {
    print("laminet Selected")
    self.checkSahafi += 3
} else if simpichi.isSelected == true {
    print("simpichi Selected")
    self.checkSahafi += 4
}
performSegue(withIdentifier: "secondStep", sender: self)