Ios 从VCA.swift到VCB.swift的计算值
我知道,YouTube上有很多关于如何在视图控制器之间传递数据的视频。但这不是我需要的。我是这个网站和Xcode的新手。我在这里找不到我问题的答案。 我的应用程序使用segue从VCA移动到VCB。 我需要将计算值从ViewControllerA.swift传递到ViewControllerB.swift ViewControllerA.swift中我的代码示例Ios 从VCA.swift到VCB.swift的计算值,ios,swift,xcode,Ios,Swift,Xcode,我知道,YouTube上有很多关于如何在视图控制器之间传递数据的视频。但这不是我需要的。我是这个网站和Xcode的新手。我在这里找不到我问题的答案。 我的应用程序使用segue从VCA移动到VCB。 我需要将计算值从ViewControllerA.swift传递到ViewControllerB.swift ViewControllerA.swift中我的代码示例 let weight = Double(textField.text!) let calculatedValueA = weight!
let weight = Double(textField.text!)
let calculatedValueA = weight! * 2
let calculatedValueB = weight! * 3
let calculatedValueC = weight! * 4
在ViewControllerB.swift中的覆盖函数viewDidLoad()将看到类似的结果
calValueA.text = String(format: "%4.0f", calculatedValueA)
calValueB.text = String(format: "%4.0f", calculatedValueB)
calValueC.text = String(format: "%4.0f", calculatedValueC)
一种方法是您需要在
ViewControllerB.swift
var valueA: Double?
var valueB: Double?
var valueC: Double?
当您从VCA导航到VCB时,需要使用受尊重的值设置这些属性
let vcb = VCA viewcontroller....
vcb.valueA = weight! * 2
vcb.valueB = weight! * 3
vcb.valueC = weight! * 4
self.navigationController.pushViewController...
注意:强制打开可选值不是一个好的做法,您可以使用if-let或guard来保存应用程序,以免崩溃
您可以使用委托或闭包将数据传递回调用对象 我理解你的问题,你可以这样做:
class ViewControllerA: UIViewController {
@IBOutlet weak var textField: UITextField!
func sendValuesToB(){
let viewControllerB = self.storyboard?.instantiateViewController(withIdentifier: "ViewControllerB") as! ViewControllerB
//calculate values
let weight = Double(textField.text!)
let calculatedValueA = weight! * 2
let calculatedValueB = weight! * 3
let calculatedValueC = weight! * 4
//set the value of view controller B
viewControllerB.calculatedValueA = calculatedValueA
viewControllerB.calculatedValueA = calculatedValueB
viewControllerB.calculatedValueA = calculatedValueC
self.navigationController?.pushViewController(viewControllerB, animated: true)
}
}
class ViewControllerB: UIViewController {
@IBOutlet weak var calValueA: UILabel!
@IBOutlet weak var calValueB: UILabel!
@IBOutlet weak var calValueC: UILabel!
var calculatedValueA : Double!
var calculatedValueB : Double!
var calculatedValueC : Double!
override func viewDidLoad() {
super.viewDidLoad()
calValueA.text = String(format: "%4.0f", calculatedValueA)
calValueB.text = String(format: "%4.0f", calculatedValueB)
calValueC.text = String(format: "%4.0f", calculatedValueC)
}
}
你的应用程序是如何构建的?VCA和VCB的关系是什么?它们是选项卡栏控制器的元素吗?该应用程序是否使用segue从VCA移动到VCB?您好!这是同一个应用程序你需要我显示屏幕或部分代码吗?只需更新你的问题,描述你如何从VCA移动到VCB。“说,我带着一辆segue就够了。”瓦卡瓦马说。谢谢!但是我得到了线程1:致命错误:在展开第
calValueA.text=String(格式:“%4.0f”,calculatedValueA)”行中的可选值时意外地发现了nil
您应该检查所有@IBOutlet对象是否已连接?