首页 > 解决方案 > 当不同的按钮通向同一个 ViewController 时,我如何快速知道按下了哪个按钮?

问题描述

我有四个按钮,它们都通向同一个视图控制器。我需要知道按下了哪个按钮,因为每个按钮的视图控制器设置略有不同。我尝试了以下操作:ViewController(称为“SecondViewController”),其中一个按钮被按下

    var index = 0

    @IBAction func Button1(_ sender: UIButton) {
        index = 1
    }
    @IBAction func Button2(_ sender: UIButton) {
        index = 2
    }
    @IBAction func Button3(_ sender: UIButton) {
        index = 3
    }
    @IBAction func Button4(_ sender: UIButton) {
        index = 4
    }


    func getIndex() -> Int{
        return index
    }

之后打开的视图控制器

// to get functions from SecondViewController
var second = SecondViewController()

let index = second.getIndex()
print(index)

不幸的是,它总是打印零。我猜是因为我在开始时将索引设置为 0,但我不明白为什么按下按钮时值不更新。

我能做些什么?

标签: iosswiftuibuttongetvalue

解决方案


我猜你正在使用 segue,所以你的 segue 在你的 IBAction 可以更新你的索引值之前执行。这里有一个类似的问题和解决方案

因此,要解决此问题,请为您的 segue 提供一个标识符,并performSegueWithIdentifier从您的 IBAction 方法中调用。


推荐阅读