ios - Swift:按下按钮时编辑标签的值

标签 ios swift button label

我正在尝试学习 Swift,并且正在研究变量的基础知识。我制作了一个应用程序,当您按下按钮时,标签的值会发生变化,虽然加 1 的按钮起作用,但减 1 的按钮不起作用。如果我将第一个按钮(plusone)更改为减一,那么它就会起作用,所以我认为这与代码的解析方式有关?您能解释一下这是如何工作的吗?提前致谢。

代码在这里:

import UIKit

class ViewController: UIViewController {

    var value = 0
    @IBOutlet var number: UILabel!

    @IBAction func plusone(_ sender: Any) {
        value = value+1
        number.text = "\(value)"
    }

    @IBAction func plustwo(_ sender: Any) {
        value = value-1
        number.text = "\(value)"
    }

}

如果重要的话,应用程序看起来像这样: Screenshot

第二个按钮被命名为“plustwo”,因为我还没有弄清楚还需要在哪里重命名它,如果我只是在这里重命名它,应用程序会显示一个空白屏幕,没有其他内容。

最佳答案

来自评论:

I changed plustwo to -2 and it works as intended. Pressing Add One adds one and pressing Substract One substracts one. I am not sure why.

您所描述的行为告诉我,您的减去一按钮已连接到plusoneplustwo函数。您可以通过control来检查这一点 - 单击Interface Builder中的按钮并检查连接。如果您看到TouchUpInside连接到两个功能,请通过单击x删除连接来删除其中一个。

验证行为的另一种方法是将日志记录 print 语句添加到您的函数中,例如 print("in plusone")print("in plustwo”)。当您按下 Subtract One 时,如果您在控制台中看到两条消息,那么您就知道您的按钮已连接到两个 @IBAction

这是如何发生的?当您在 Interface Builder 中复制已经与 @IBAction 连接的按钮时,经常会发生这种情况。将其连接到新的 @IBAction 并不会取代第一个,它只是连接到它们两个,并在按下按钮时调用它们。

The second button is named 'plustwo' because I haven't figured out where else I need to rename it, if I just rename it here the app displays a blank screen and nothing else.

要重命名函数,您需要更改函数的名称,并在 Interface Builder 中删除并重新连接连接。。如上所述,control - 单击 Interface Builder 中的按钮并删除与旧函数名称的连接,然后将按钮连接到新函数。

关于ios - Swift:按下按钮时编辑标签的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49637501/

相关文章:

android - 处理 android 通知中的按钮

ios - 类是否可以显式调用协议(protocol)扩展的方法?

ios - UITableViewCell在编辑模式下按减号后消失

ios - 如何在 WebKit View 中获取点击元素的 Id?

ios - Firebase SDK 不适用于 iOS 10

string - 如何在 swift 中使用 if let 和另一个语句?

知道哪个按钮按下的 Python 函数 (Tkinter)

json - 为什么我在Swift文件中解开nil?

swift - Swift 中需要奇怪的转换

Android谷歌地图按钮样式