如何在swift中设置childrenclass属性

How to set children class property in swift

在我左侧的视图控制器 ModuleDetailsVC 上,我有一个名为 moduleId 的 class 属性。我的问题是我想将这个 属性 传递给 ChartVC,以便生成相应的图形。 我有一个容器视图,因为我的图表视图需要一个不同的视图控制器。

class ModuleDetailsVC: UIViewController {
  @IBOutlet weak var chartSubView: UIView!
  private var _module: Module?

  [...]
}

class ChartVC: UIViewController {
  var moduleId: Int!

  func setModuleId(moduleId: Int) {
    self.moduleId = moduleId
  }

  [...]
}

在哪里调用 ChartVC.setModuleId()?如果调用这是正确的解决方案...(我已经尝试过 ViewDidLoad/Appear / SubViewLayout... 等

PS: 标题可能完全错误,如果您有任何想法,请编辑。

将触发 segue 以显示容器视图的视图控制器是其父视图控制器。在您的情况下,这是左侧的控制器 - ModuleDetailsVC.

为了将数据传递给容器视图的控制器 ChartVC,您只需在呈现控制器 (ModuleDetailsVC) 中覆盖 prepareForSegue

class ModuleDetailsVC: UIViewController {
    private var module: Module

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        if let chartVC = segue.destinationViewController as? ChartVC {
            chartVC.setModuleId(module.id)
        }
    }
}

class ChartVC: UIViewController {
    var moduleId: Int!

    func setModuleId(moduleId: Int) {
        self.moduleId = moduleId
    }
}