无法在 ViewController 和子类之间传递数据
Posted
技术标签:
【中文标题】无法在 ViewController 和子类之间传递数据【英文标题】:Can't pass data between ViewController and subclass 【发布时间】: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。 【参考方案1】:应该是这样的:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
if let calculationVC = segue.destinationViewController as? CalculationVC
calculationVC. firstNumber = number
您需要将其传递给实际的视图控制器,而不是该控制器类的某个实例
【讨论】:
以上是关于无法在 ViewController 和子类之间传递数据的主要内容,如果未能解决你的问题,请参考以下文章
在 TapBarController 内的 ViewController 和 NavigationController 之间传递值