【问题标题】:Why I can't append number to my Variable?! in Swift 3为什么我不能将数字附加到我的变量?!在斯威夫特 3
【发布时间】:2017-05-15 05:51:04
【问题描述】:

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

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

    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)

    }

在第二个视图控制器中我有这个方法:

    let checkNum = firstViewController().checkSahafi

    override func viewDidLoad() {
          super.viewDidLoad()

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

    }

但应用程序只是打印 0 我怎样才能附加这些数字?!

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

【问题讨论】:

  • 你的数据传递代码在哪里
  • 没有!我的应用中没有数据库
  • 您可以大大简化其中的一些代码。这可能是这样的:pastebin.com/EwDbbgq7
  • 感谢 Alexander 下面的代码对我有用

标签: ios uiviewcontroller swift3 append


【解决方案1】:

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

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

现在只需像这样在SecondViewController 中更改checkNum 的声明。

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)

【讨论】:

  • 又没有得到结果,能解释一下吗?
  • 非常感谢它的工作
  • @SaeedRahmatolahi 欢迎朋友 :)
  • @NiravD - 当然是兄弟
猜你喜欢
  • 2017-03-24
  • 2016-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-27
  • 2017-07-22
  • 2020-08-24
相关资源
最近更新 更多