从变量分配UIButton目标

时间:2016-06-18 22:47:32

标签: swift uibutton swift3

是否可以从变量中分配目标?我有一个函数添加和删除一个非常冗余的目标,我想截断它。我创建了typealias,它复制了UIButtonTarget所需的参数,但无法在没有参数的情况下分配目标。错误: 缺少参数' action'的参数在电话中

 @IBAction func didTapActionBtn(sender: UIButton){
    typealias btnTarget = (_: AnyObject?, action: Selector, for: UIControlEvents)
    let prevTarget: btnTarget = (self, action: #selector(self.showPrevApp), for: .touchUpInside)

    if sender.tag == 0{
      sender.tag = 1
      prevBtn.removeTarget(prevTarget) //*Missing argument for parameter 'action' in call
      nextBtn.removeTarget(self, action: #selector(self.showNextApp), for: .touchUpInside)
    }else{
      sender.tag = 0
      prevBtn.addTarget(self, action: #selector(self.showPrevApp), for: .touchUpInside)
      nextBtn.addTarget(self, action: #selector(self.showNextApp), for: .touchUpInside)
    }
  }

1 个答案:

答案 0 :(得分:2)

你想要做的事情(隐式元组摔跤行为)曾经在Swift中工作,但它在Swift 2.2中被弃用并在Swift 3中删除。

以下是Swift 2.2错误消息:

  

不推荐将3个参数作为单个元组值传递给被调用者

有关删除元组splat行为的动机,请参阅以下内容:

SE-0029 Remove Implicit Tuple Splat Behavior