Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何让UI按钮在每次按下时执行不同的任务?_Ios_Swift_Ios8_Xcode6 - Fatal编程技术网

Ios 如何让UI按钮在每次按下时执行不同的任务?

Ios 如何让UI按钮在每次按下时执行不同的任务?,ios,swift,ios8,xcode6,Ios,Swift,Ios8,Xcode6,当我为按钮创建iAction时,我可以很容易地让它执行操作,例如: @IBAction func click(sender: AnyObject) { label6.hidden = false} 当它被第二次或第三次点击时,我如何让它执行完全不同的任务 谢谢 编辑:当我尝试此操作时,会出现一个错误“Viewcontroller.type没有名为“label1”的成员”,这也是为“label2”声明的。您知道为什么吗,因为我已经将标签添加到了插座中。我需要在其他地方声明它才能使其工作吗?谢谢

当我为按钮创建iAction时,我可以很容易地让它执行操作,例如:

@IBAction func click(sender: AnyObject) {

label6.hidden = false}
当它被第二次或第三次点击时,我如何让它执行完全不同的任务

谢谢

编辑:当我尝试此操作时,会出现一个错误“Viewcontroller.type没有名为“label1”的成员”,这也是为“label2”声明的。您知道为什么吗,因为我已经将标签添加到了插座中。我需要在其他地方声明它才能使其工作吗?谢谢

导入UIKit

类ViewController:UIViewController{

override func viewDidLoad() {
    super.viewDidLoad()
    label1.text = ""
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

@IBOutlet weak var label1: UILabel!
@IBOutlet weak var label2: UILabel!

class MyButtonClass
{
    var clickCounter: Int = 0

    @IBAction func click(sender: AnyObject)
    {
        clickCounter += 1

        if (clickCounter == 1)
        {label1.text = "text1"}

        else if (clickCounter == 2)
        {label2.text = "text1"
        clickCounter = 0}
    }
}

}

您可以拥有一个计数器,并根据其值从单击时调用的方法中触发另一个方法

  • 创建对抽头计数进行计数的属性
  • 每次单击时增加点击次数
  • 在抽头计数上实现一个开关,以执行不同的操作(iAction充当调度器)

用以下代码替换您的代码:

class ViewController: UIViewController
{
    override func viewDidLoad()
    {
        super.viewDidLoad()
        label1.text = ""
    }

    override func didReceiveMemoryWarning()
    {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    @IBOutlet weak var label1: UILabel!
    @IBOutlet weak var label2: UILabel!

    var clickCounter: Int = 0

    @IBAction func click(sender: AnyObject)
    {
        clickCounter += 1

        if (clickCounter == 1)
        {
            label1.text = "text1"
        }

        else if (clickCounter == 2)
        {
            label2.text = "text1"
            clickCounter = 0
        }
    }
}

类MyButtonClass{var clickCounter:Int=0@iAction func button1(发件人:AnyObject){clickCounter+=1 if(clickCounter==1){label1.hidden=true}否则if(clickCounter==2){label2.hidden=true}clickCounter=0}当我尝试此操作时,会出现一个错误“Viewcontroller.type没有名为“label1”的成员”,这也是为“label2”所述的任何想法,因为我已经将标签添加为插座。我需要在其他地方申报才能使用吗?感谢您提供定义标签变量的类的代码?如果有合适的材料,我将能够提供实质性的帮助!IBVAR标签2:UILabel!类MyButtonClass{var clickCounter:Int=0@iAction func click(发送方:AnyObject){clickCounter+=1 if(clickCounter==1){label1.text=“text1”}否则if(clickCounter==2){label2.text=“text1”clickCounter=0}}}一开始我从IBOutlets中删除了@符号,因为它认为我在标记人。编辑您的答案并将代码放入其中。复制整个类的代码会很有帮助。您能提供更多详细信息,如如何随机或以预定义的方式执行差异函数?有多少个函数?总计数等