【问题标题】:Can't pass data between ViewController and subclass无法在 ViewController 和子类之间传递数据
【发布时间】:2016-07-22 13:19:03
【问题描述】:

我一直在尝试创建一个数轴应用程序,它使用 UIScrollView 类将所有标签和刻度添加到数轴(基本上创建 UI),以便我可以实现无限滚动的错觉。

问题是数字线是交互式的,所以我必须访问 UIScrollView 的输入,例如在数字线上选择一个数字。 但是,每当我尝试将数据(例如选择的数字)从 UIScrollView 类传递到 ViewController 类时,它永远不会起作用,因为 ViewController 中的数据值保持在 0。这是我的代码:

(ItemVC 是持有 scrollView 的视图控制器,CalculationVC 是我要传递数据的那个)

//In the UIScrollView class
let destVC: ItemVC = ItemVC()
destVC.number = myNumber

//In the ItemVC class
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)  {
    if segue.identifier == "Go" {
        let destVC: CalculationVC = CalculationVC()
        destVC.firstNumber = number
    }
}

【问题讨论】:

  • 我猜问题出在 UIScrollView 类代码中,因为在 ItemVC 中 number 的值永远不会更改为适当的值,它只是保持在 0。

标签: ios iphone swift uiviewcontroller uiscrollview


【解决方案1】:

应该是这样的:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
      if let calculationVC = segue.destinationViewController as? CalculationVC {
           calculationVC. firstNumber = number
      }
 }

您需要将其传递给实际的视图控制器,而不是该控制器类的某个实例

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-23
    • 2016-03-24
    • 2017-01-22
    • 1970-01-01
    • 1970-01-01
    • 2019-12-05
    • 1970-01-01
    • 2017-12-09
    相关资源
    最近更新 更多