我正在使用Xcode 8 beta。我无法从故事板中拖动多个UIButton来连接到swift文件中的单个@IBAction。错误?谢谢你的帮助。
答案 0 :(得分:18)
通过使用此解决方法,您可以添加现有操作,还可以将多个按钮连接到单个操作。
我认为Xcode8中存在一个错误。您可以通过将sender
更改为_ sender
例如: - 普通按钮
@IBAction func huu(sender: UIButton) {
}
您无法在此操作中添加多个按钮或单个按钮,只需更改此类操作,然后您可以使用拖动和连接故事板添加多个按钮。
@IBAction func huu(_ sender: UIButton) {
}
连接IBOutlets后,Xcode会显示如下警告: -
要删除此警告,请从操作/功能中删除_
符号。确保在连接IBOutlets后删除_
希望这会对你有所帮助! :)
答案 1 :(得分:13)
如果您将发件人更改为 AnyObject 而不是Any或 UIButton ,则可以将多个按钮连接到同一操作。
答案 2 :(得分:4)
如果你改变了#34;任何"到" UIButton"它会工作。
答案 3 :(得分:1)
如果我是正确的,您需要使用UIGestureRecognizer
将多个内容附加到一个操作中。
你可以做的是在每个按钮上放置一个UIGestureRecognizer
,然后像往常一样用按钮(按住Ctrl键拖动)设置其中一个,而不是从其他手势识别器按住Ctrl键拖动到第一个按钮你做的行动。
答案 4 :(得分:1)
以下IBAction仅适用于一个按钮。
@IBAction func singleButton(sender: Any) {
// Write your logic
}
以下IBAction可以使用多个按钮。
@IBAction func multipleButton(sender: UIButton) {
// To find a particular button from an array of buttons
if sender.tag == 1{
// Write your logic
}else if sender.tag == 2{
// Write your logic
}
}
答案 5 :(得分:0)
我想这是另一个问题:如果你第一次尝试创建一个IBAction,它可以正常工作。 但是,如果由于任何原因你决定重新连接IBAction(同一个动作与另一个对象,或重命名该功能),那么它就会失败。
实际上,您创建了一个名为doSomething
的IBAction,它创建了一个函数func doSomething(sender: UIButton)
。
但是使用XCode 8(或Swift 2.3 / 3.0),此方法被解释为func doSomethingWithSender(sender: UIButton)
。
我想这是一个错误,Apple在“重命名Objc-methods”的事情上有点过分。
答案 6 :(得分:0)
我已将发件人更改为任何
中的UIButton控制将按钮拖动到功能名称。
答案 7 :(得分:0)
在Swift 3完整版中,这将有效。
只需将Any更改为UIButton,即可将更多按钮操作连接到此特定方法。
所以改变之后它应该是这样的:
@IBAction func s(_ sender:UIButton){ } 当然这将解决问题。 :)
答案 8 :(得分:0)
我多次尝试,最后得到了结果,
正常的UIAction
@IBAction func selectBtn(_ sender: Any) {
}
对于具有相同UIAction方法的多个按钮,请尝试以下方法,
@IBAction func selectBtn(_ sender: UIButton) {
}
这对我有用。我将返回类型从“Any”更改为“UIButton”