通过发送者在 Swift 上获取按钮按下的 ID

2024-01-28

所以我有一个带有 3 个按钮的故事板,我只想为所有这 3 个按钮创建 1 个操作,并根据它们的标签/id 决定要做什么...

有没有办法为每个按钮获取某种标识符?

顺便说一句,它们是图像,因此没有标题。

@IBAction func mainButton(sender: UIButton) {
    println(sender)
}

您可以设置一个tag在每个按钮的故事板中。然后你可以这样识别它们:

@IBAction func mainButton(sender: UIButton) {
    println(sender.tag)
}

EDIT:为了提高可读性,您可以使用与所选标签相对应的值定义枚举。所以如果你设置像这样的标签0, 1, 2对于您的按钮,在您的类声明之上,您可以执行以下操作:

enum SelectedButtonTag: Int {
    case First
    case Second
    case Third
}

然后,您将拥有以下内容,而不是处理硬编码值:

@IBAction func mainButton(sender: UIButton) {
    switch sender.tag {
        case SelectedButtonTag.First.rawValue:
            println("do something when first button is tapped")
        case SelectedButtonTag.Second.rawValue:
            println("do something when second button is tapped")
        case SelectedButtonTag.Third.rawValue:                       
            println("do something when third button is tapped")
        default:
            println("default")
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过发送者在 Swift 上获取按钮按下的 ID 的相关文章

随机推荐

  • 将 pandas crosstab 数据框更改为纯表格式:

    我通过以下 pandas 交叉表获得了聚合数据框 但是 我想要这样的列格式 id ymdh A11 A12 A15 A16 如何将原始数据框更改为我想要的格式 Original output dataframe df pd crosstab
  • 使用 LoginView 触发 UpdatePanel 内的按钮

    我有一个 UpdatePanel 里面有一个 LoginView 现在 在 AnonymousTemplate 里面我有一个按钮 btnLogin 问题是触发器标签看不到该按钮 这是代码
  • Invoke-RestMethod 错误:无法发送正文类型

    我正在尝试使用 Invoke RestMethod 从 Freshdesk 获取门票 我收到的错误是 Invoke RestMethod 无法发送具有此动词类型的内容正文 我的函数如下所示 function opentickets Body
  • django-rest-framework POST 上的“此字段是必需的”

    每当我发布到 django rest framework DRF 端点时 我都会不断收到 HTTP 400 Bad Request offeror organization This field is required 回复 但是 考虑到下
  • 将 ActivityGroup 应用程序转换为使用 Fragments/FragmentGroup

    我有一个应用程序 我迫切需要从使用旧的 ActivityGroup 类转换为 Fragments 但我不知道该怎么做 下面是我现在使用的代码示例 谁能提供一些关于我应该采取哪些步骤来开始将其切换为使用 Fragments FragmentM
  • 鼠标按钮按下过多

    我想只要按住鼠标右键即可放大某个对象 现在的问题是我每次想要缩放时都必须单击它 有没有办法可以修改我的代码 以便在按住按钮而不是单击按钮时它会缩放 void mouse int button int state int x int y Sa
  • 通过 Maven/TeamCity 运行 IntelliJ 检查

    我有一个 Maven 项目 我正在尝试配置 TeamCity 来运行IntelliJ 的检查 http confluence jetbrains net display TCD6 Inspections on it TeamCity 的文档
  • 如何在 AngularJS 中使用动态模板创建指令?

    如何使用动态模板创建指令 use strict app directive ngFormField function compile return transclude true scope label template
  • App Engine 和 Google Drive API

    我已经使用应用程序引擎工作了几个星期 现在我正在尝试做一些新的事情 我想显示用户最新 25 个文档的列表 但我不知道该怎么做 有人能给我一些信息吗 我有一个应用程序设置 1 可以使用Google Drive API 2 用户必须登录才能使用
  • 插入 C# MongoDB 中的嵌套数组

    我有以下内容document在一个名为的集合中Users在 MongoDB 中 我正在尝试插入一个
  • 通过正确定义索引列表来提高代码效率

    我问了这个问题通过重新构建 if 语句 do 循环来避免重复代码 https stackoverflow com questions 53289143 avoid duplicating code by re structuring if
  • Selenium 3.0 ExpectedConditions 问题

    Using a click 实现如下 selenium 的行为就像单击了按钮一样 并期待下一个屏幕 但网页不会收到点击 因此不会弹出下一个屏幕 我不太明白这是怎么回事 也许有些人以前遇到过这个问题 点击实现如下 public static
  • 检查 Oracle 中是否存在行的最快查询?

    我正在使用 Oracle 并且有一个非常大的表 我需要检查是否存在满足一些简单标准的任何行 使用简单的 SQL 来解决此问题的最佳方法是什么 这是我最好的猜测 虽然对于我的目的来说它可能足够快 但我很想学习一种规范的方法来基本上实现 SQL
  • 包 org.apache.axis2 不存在

    我正在尝试导入包 import org apache axis2 context ConfigurationContext import org apache axis2 description AxisService import org
  • zend框架中的Zend_form_element_select onchange

    我有一个名为 createDevice php 的表单 class Admin Form CreateDevice extends Zend Form public function init this gt setName Create
  • 为什么“openssl pkcs12 -in keystore.p12 -out client-certificate.pem -clcerts -nokeys”需要 -nokeys

    我正在使用 openssl 生成客户端证书和密钥 稍后将在与 cUrl 的相互身份验证中使用它们 我正在使用以下命令来生成客户端证书 openssl pkcs12 in keystore p12 out client certificate
  • 像命令式程序一样跟踪 Haskell 中的程序变量

    每次用户与我的程序交互时 我很难找出如何进行更改 很难解释 所以这里有一个例子 Haskell wxhaskell simulate Int gt Frame gt IO simulate qNr window do fdata lt re
  • 将字符串分成两半

    我正在制作一个新的转换软件来隐藏消息 为了好玩 我制作了一个二进制和十进制转换类 我的想法是 用户输入字符串 它将全部转换为二进制格式 然后将其分成两半 将一半转换为十进制 然后再次将字符串加在一起 使其成为二进制和十进制的混合 在其他版本
  • 使用 Xcode 将 Swift 交叉编译到 Linux?

    假设我有一个使用 Swift 和一些 C 语言的 Xcode 项目 该项目使用的所有框架 依赖项在两个平台上都可用 有没有一种简单的方法来告诉 Xcode 生成 framework 或者只是为树莓派构建整个项目 None
  • 通过发送者在 Swift 上获取按钮按下的 ID

    所以我有一个带有 3 个按钮的故事板 我只想为所有这 3 个按钮创建 1 个操作 并根据它们的标签 id 决定要做什么 有没有办法为每个按钮获取某种标识符 顺便说一句 它们是图像 因此没有标题 IBAction func mainButto