【发布时间】:2018-04-07 13:42:16
【问题描述】:
我有 3 个 viewController,我正在以这种方式将数据从第一个传递到第二个(这是第一个 VC)
var steppers : UIStepper?
@IBOutlet weak var hourLabel: UILabel!
@IBOutlet weak var stepper: UIStepper!
@IBAction func stepper(_ sender: UIStepper) {
hourLabel.text = String(sender.value)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let nc = segue.destination as? SelectClass {
nc.limit = Int(stepper.value)
} }
在第二个 VC 中,我有 var limit = 0。直到这里一切正常,但我想做的是将用户提供给步进器的值传递给第三个 VC。我试图在第三个 VC var limit2 = 0 中创建另一个变量,并以这种方式将数据从第二个 VC 传递到第三个
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let vc = segue.destination as? ThirdClass {
vc.limit2 = limit
} }
但没有结果,我的var limit2 = 0it 始终具有值 0,而不是采用我使用步进器添加的值。我该怎么办?
这是第二个 VC 中的准备工作
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == nearbySearchSegueIdentifier {
guard let category = sender as? QCategoryy else {
return
}
if let selectedRows = tableView.indexPathsForSelectedRows {
if let vc = segue.destination as? ThirdClass {
vc.category = category
vc.limit2 = limit
}
}
}
}
【问题讨论】:
-
你是直接从VC1到VC3吗?
-
是不是忘了添加连接第二个和第三个VC的segue?
-
@Malik 不,我必须通过第二个 VC
-
@Sweeper 不,我没有忘记
-
您的代码似乎没有问题。尝试在 VC2 中的
prepareForSegue中设置一个断点,看看是否正在分配值
标签: ios swift xcode swift3 uiviewcontroller