ios - 如何通过按下单独 View 中的按钮来增加标签?

标签 ios swift uiviewcontroller

所以基本上我熟悉应用程序开发和 Xcode,但我仍处于学习的初级阶段,我需要一些帮助。我创建了一个情绪测验类型的用户界面,在 10 个问题结束时,我有一个页面显示不同的情绪和用户在整个测验中获得的分数。我需要帮助的是当用户单击问题 1 上的按钮以使我的结果页面上的标签增加 1 时。到目前为止,我已经尝试了很多不同的方法,但似乎无法完全弄清楚。我将我的按钮链接到它们各自的 View Controller 作为 Action ,并将标签链接到它们各自的 View Controller 作为导出。

    import UIKit

class Question1: UIViewController {

@IBAction func buttonlightgreen(_ sender: UIButton) {
    print ("light green")
    sadscoreText += 1

}

@IBAction func buttonred(_ sender: Any) {
    print ("red")
    angryscoreText += 2
    happyscoreText += 1
}

@IBAction func buttonpurple(_ sender: Any) {
    print ("purple")
    annoyedscoreText += 1
    stressedscoreText += 1
}

@IBAction func buttondarkgreen(_ sender: Any) {
    print ("dark green")
    relaxedscoreText += 2
    tiredscoreText += 1
}

@IBAction func buttonyellow(_ sender: Any) {
    print ("yellow")
    happyscoreText += 1
}



override func viewDidLoad() {

    super.viewDidLoad()

}



}

这是按钮的代码,这是标签的代码。

    import UIKit

var sadscoreText = 0
var happyscoreText = 0
var relaxedscoreText = 0
var angryscoreText = 0
var annoyedscoreText = 0
var tiredscoreText = 0
var stressedscoreText = 0

class Results: UIViewController {

@IBOutlet weak var sadscore: UILabel!
@IBOutlet weak var happyscore: UILabel!
@IBOutlet weak var relaxedscore: UILabel!
@IBOutlet weak var angryscore: UILabel!
@IBOutlet weak var annoyedscore: UILabel!
@IBOutlet weak var tiredscore: UILabel!
@IBOutlet weak var stressedscore: UILabel!


var sadscoreText: Int = 0 {
    didSet {
        sadscore.text = "\(sadscoreText)"
    }
}

override func viewDidLoad() {
    super.viewDidLoad()

    sadscoreText = 0
    happyscoreText = 0
    relaxedscoreText = 0
    angryscoreText = 0
    annoyedscoreText = 0
    tiredscoreText = 0
    stressedscoreText = 0
}
}

最佳答案

我相信它不起作用的原因是因为在将修改后的值分配给 viewDidLoad 方法中的标签之前,您将 0 分配给值。您可以像这样实现所需的行为:

如下修改结果 View Controller :

import UIKit

var sadscoreText = 0
var happyscoreText = 0
var relaxedscoreText = 0
var angryscoreText = 0
var annoyedscoreText = 0
var tiredscoreText = 0
var stressedscoreText = 0

class Results: UIViewController {

@IBOutlet weak var sadscore: UILabel!
@IBOutlet weak var happyscore: UILabel!
@IBOutlet weak var relaxedscore: UILabel!
@IBOutlet weak var angryscore: UILabel!
@IBOutlet weak var annoyedscore: UILabel!
@IBOutlet weak var tiredscore: UILabel!
@IBOutlet weak var stressedscore: UILabel!


override func viewDidLoad() {
    super.viewDidLoad()

    sadscore.text = "\(sadscoreText)"
    happyscore.text = "\(happyscoreText)"
//follow the same for other labels

//you can set the values again to zero after showing the labels on the screen like this
    sadscoreText = 0
    happyscoreText = 0

}
}

关于ios - 如何通过按下单独 View 中的按钮来增加标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45603856/

相关文章:

ios - UIDocumentInteractionController和PDF

ios - 全局变量不会保存在 Swift 中

swift - 为什么在 Swift 中两个不同的数组字面量彼此相等?

objective-c - objective c 将一个对象设置为一个未知的类

ios - 如何将数据从 VC 传递到 Cell?

ios - 将 View Controller 插入导航 Controller 后,不会触发 viewDidLoad(和 loadView)

ios - 如何从 UITextField 中的外部键盘检测到 "command + backspace"

php本地连接mysql数据库

ios - UiStackView 内的 UiTextField 没有响应

ios - 如何在 iOS 11 中隐藏章节标题?