gpt4 book ai didi

swift - 如何将计算结果存储在 UserDefaults 中以显示在 "results" View Controller 中

转载 作者:行者123 更新时间:2023-11-30 10:52:17 25 4
gpt4 key购买 nike

第一次发帖,对于问题的格式/长度不正确感到抱歉。

我正在 Xcode 中构建一个应用程序,允许用户在众多 View Controller 中输入各种输入,然后在单个 View Controller 中输出,并通过标签显示结果。

原始输入的文本字段数据存储在 UserDefaults 中,稍后可以在生成的 VC 中显示它们,没有任何问题。然而,我在计算输出时遇到了问题(在本例中为“papiresult”)。

任何人都可以提供指导如何使用 UserDefaults 稍后打印多个 View Controller 的计算结果吗?

这是大致的布局

enter image description here

这是我在第一个 ViewController 中的代码:

import UIKit

let userDefaults = UserDefaults()
var papiresult = Double()


class ViewController1: UIViewController, UITextFieldDelegate {

@IBOutlet weak var textField1: UITextField!
@IBOutlet weak var textField2: UITextField!
@IBOutlet weak var textField3: UITextField!

override func viewDidLoad() {
super.viewDidLoad()
textField1.delegate = self
textField2.delegate = self
textField3.delegate = self
}

//Declaring data input into UserDefaults//
@IBAction func sendDataToVC2(_ sender: Any) {


let systPA = Double(textField1.text!)
let diastPA = Double(textField2.text!)
let cvPressure = Double(textField3.text!)
papiresult = ((systPA!-diastPA!)/cvPressure!)

userDefaults.set(textField1.text, forKey: "PASP")
userDefaults.set(textField2.text, forKey: "PADP")
userDefaults.set(textField3.text, forKey: "CVP")
userDefaults.set(papiresult, forKey: "PAPI")

}
}

这是最后一个(结果) View Controller 中的代码:

import UIKit


class ViewController3: UIViewController {

@IBOutlet weak var label1: UILabel!
@IBOutlet weak var label2: UILabel!
@IBOutlet weak var label3: UILabel!
@IBOutlet weak var label4: UILabel!
@IBOutlet weak var label5: UILabel!

override func viewDidLoad() {
super.viewDidLoad()
}

//Recalling data from UserDefaults//

override func viewWillAppear(_ animated: Bool) {

if let data1 = userDefaults.object(forKey: "PASP") {
if let message1 = data1 as? String {
self.label1.text = message1}
}
if let data2 = userDefaults.object(forKey: "PADP") {
if let message2 = data2 as? String {
self.label2.text = message2}
}
if let data3 = userDefaults.object(forKey: "CVP") {
if let message3 = data3 as? String {
self.label3.text = message3}
}
if let data4 = userDefaults.object(forKey: "Age") {
if let message4 = data4 as? String {
self.label4.text = message4}
}
if let data5 = userDefaults.object(forKey: "PAPI") {
if let message5 = data5 as? Double {
self.label5.text = "\(message5)"}
}
}

最佳答案

基本上,您应该使用 UserDefaults.standard 而不是创建 UserDefaults 类的新实例。所以我认为这段代码

let userDefaults = UserDefaults()

应替换为:

let userDefaults = UserDefaults.standard

关于swift - 如何将计算结果存储在 UserDefaults 中以显示在 "results" View Controller 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54328420/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com