Xcode 8 ベータ版を使用しています。ストーリーボードから複数の UIButton をドラッグして、swift ファイルの単一の @IBAction に接続することはできません。バグ?ご協力いただきありがとうございます。
10 に答える
この回避策を使用すると、既存のアクションを追加でき、複数のボタンを 1 つのアクションに接続することもできます。
Xcode8にバグがあると思います。sender
に変更することにより、単一のアクション/機能に複数/単一のボタンを追加できます_ sender
例:- 通常ボタン
@IBAction func huu(sender: UIButton) {
}
このアクションに複数のボタンまたは単一のボタンを追加することはできません。このように単純に変更する必要があります。その後、ストーリーボードからドラッグして接続することで複数のボタンを追加できます。
@IBAction func huu(_ sender: UIButton) {
}
IBOutlets を接続した後、Xcode は次のような警告を表示します:-
この警告を削除する_
には、アクション/関数から記号を削除します。_
IBOutlets を接続した後に必ず削除してください
これがあなたを助けることを願っています!:)
送信者をAny またはUIButtonではなくAnyObjectに変更すると、複数のボタンを同じアクションに接続できるようになります。
ボタン アクションを接続すると、デフォルトでメソッドは次のようになります。
@IBAction func s(_ sender: Any) {
}
AnyをUIButtonに変更するだけで、より多くのボタン アクションをこの特定のメソッドに接続できます。
したがって、変更後は次のようになります。
@IBAction func s(_ sender: UIButton) {
}
これで問題が解決することを願っています。:)
「Any」を「UIButton」に変更すると動作します。
以下の IBAction は、1 つのボタンに対してのみ機能します。
@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
}
}
送信者を Any から UIButton に変更しました
コントロールは、ボタンを関数の名前にドラッグします。
IN Swift 3 フルバージョンではこれが機能します。
Any を UIButton に変更するだけで、より多くのボタン アクションをこの特定のメソッドに接続できます。
したがって、変更後は次のようになります。
@IBAction func s(_ sender: UIButton) { } 確かにこれで問題は解決します。:)