ios - 如何在不使用 IBaction/InterfaceBuilder 的情况下调用 UISwitch 触摸

标签 ios swift uikit

每当我的 UISwitch 在不使用 @ib 操作的情况下被点击时,我都试图调用一个函数,但我无法找到执行此操作的正确方法,无论我如何尝试调用它,似乎都没有任何效果。我通过代码而不是 Storyboard 使用所有内容,因此使用 ib 属性并不是我尝试使用的选项

我正在使用它,但一直出现错误

terminating with uncaught exception of type NSException

  func gameSwitchTapped(){
    print("touched")
    if gameMuteSwitch.isOn == true {
      gameview.saveData.set(false, forKey: gameview.gameMuteKey)
    } else {
      gameview.saveData.set(true, forKey: gameview.gameMuteKey)}
    }

并且,在其他地方:

  gameMuteSwitch.addTarget(self, action: Selector(("gameSwitchTapped")), for: UIControlEvents.valueChanged)

最佳答案

我认为应该这样做:

mySwitch.addTarget(self, action: #selector(self.switchChanged(sender:)), forControlEvents: UIControlEvents.ValueChanged)

func switchChanged(sender: UISwitch) {
   let value = mySwitch.on
   // Do something
}

关于ios - 如何在不使用 IBaction/InterfaceBuilder 的情况下调用 UISwitch 触摸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39627608/

相关文章:

ios - 在水平堆栈 View (AutoLayout) 中垂直居中带有图像的文本 - iOS

ios - Swift - 来自 CIImage QR 代码的图像数据/如何呈现 CIFilter 输出

ios - UITableView + 在顶部添加内容偏移量

iphone - 应用程序崩溃,但仅在为 Ad-Hoc 发行版构建时

ios - UIImage 的高质量缩放

ios - 如何在iOS应用程序中读取购买收据

android - 移动应用程序和 WooCommerce WordPress 网站数据同步

swift - 日期格式器 swift 3

objective-c - 如何制作类似 Explore Flickr 应用旋转动画的动画

swift - 在 Swift 中,您能否创建一个仅在特定条件满足相关类型时才需要特定功能的协议(protocol)?