2016-06-15 4 views

答えて

1

私が正しい場合、UIGestureRecognizerを使用して、1つの動作に複数のものを添付する必要があります。あなたは何ができるか

は、あなたが作った最初のアクションに他のジェスチャ認識装置からCTRL-ドラッグよりも、各ボタンの場所UIGestureRecognizerし、それらの設定1あなたは、通常のボタン(CTRL-ドラッグ)の場合と同様であり、 。

+0

ありがとうございました。それがうまくいくと私は信じています。しかし、以前のバージョンのXCodeでは、Ctrlキーを押しながら複数のボタンを直接1つのIBActionにドラッグすることができます。 xcode 8ベータ版では、もはやそれはできません。私はちょうど手動で接続インスペクタを介して接続してしまった。 –

0

私はそれが別の問題だと思います。初めてIBActionを作成しようとするとうまくいきます。 しかし何らかの理由でIBActionを別のオブジェクトに再接続する(同じアクションを別のオブジェクトに再接続するか、関数の名前を変更する)場合は、失敗します。

実際には、doSomethingと呼ばれるIBActionを作成します。これは、機能func doSomething(sender: UIButton)を作成します。 しかし、XCode 8(またはSwift 2.3/3.0)では、このメソッドはfunc doSomethingWithSender(sender: UIButton)と解釈されます。

私はそれがバグだと思います.Appleは、 "名前を変更するObjc-methods"のことに少し難しすぎました。

+0

これにはどんな解決策が見つかりましたか? –

+0

いいえ、明らかにXcodeの問題です。 Appleがこれを修正するか、コードをSwift 3に変換します。 –

18

この回避策を使用すると、既存のアクションを追加したり、複数のボタンを1つのアクションに接続することができます。

Xcode8にバグがあります。あなたは_ sender

senderを変更することにより、単一のアクション/関数に複数/シングルボタンを追加することができます例えば: - あなたは、あなたがする必要がある。このアクションに複数のボタンまたは単一のボタンを追加することはできません

@IBAction func huu(sender: UIButton) { 

    } 

ノーマルボタン単にこのように変更してから、ストーリーボードからドラッグして接続して複数のボタンを追加することができます。アクション/機能から、この警告の簡単な削除_記号を削除するには

enter image description here

- :IBOutlets Xcodeのは、このような警告が表示されます接続した後

@IBAction func huu(_ sender: UIButton) { 

} 

。あなたのIBOutletsを接続した後に_を削除することを確認してください

これはあなたを助けることを望む!どれかUIButtonとは対照的に、あなたはANYOBJECTに送信者を変更した場合:)

+1

これは素晴らしい答えです.Xcode 8のリリースバージョンで動作します。ありがとう!別の考え方は、引数を完全に削除することです。 –

+1

@ Chathuranga Silva - それは私のために働いた、ありがとう。 @ダニエルTも働いた、ありがとう。 –

+1

これはうまくいきます...最近、Xcodeの安定したバージョンを使用するために、その長さになると私は悲しんでいます... – Kirualex

13

それはあなたが同じアクションに複数のボタンを接続することができます。

+0

これは機能します。私は 'AnyObject'に変更して動作します。明らかに、Xcode 8.2.1のバグです。 – AechoLiu

10

あなたは方法がどのように見えるだろう、デフォルトでは、ボタンアクションを接続します

@IBAction func s(_ sender: Any) { 
    } 

ちょうどどれ UIButtonへの変更と、あなたは、この特定の方法により、ボタンのアクションを接続することができます。

だから、それが必要変更した後、次のようになります。

@IBAction func s(_ sender: UIButton) { 
    } 

希望これで問題が解決します。 :)私はどれ

ControlからUIButtonに送信者を変更した

+1

それは行く方法thats ...私のために働いたw xcode 8.2.1とNSButton ... – hlv

+1

これは魅力のように働いた! –

+1

これも私のためにやった! – toddg

0

は、関数の名前にボタンをドラッグします。

0

IN Swift 3フルバージョンでこれが動作します。

AnyをUIButtonに変更するだけで、この特定のメソッドにさらに多くのボタンアクションを追加できます。

@IBAction funcをS(_差出人:UIButton){} この問題を解決すると確信して

だから、それをすべき変更した後、このようになります。 :)

4

"Any"を "UIButton"に変更すると機能します。

0

私は

@IBAction func selectBtn(_ sender: UIButton) { 

    } 

、最後に、私は同じUIActionメソッドを持つ複数のボタンの

ノーマルUIAction

@IBAction func selectBtn(_ sender: Any) { 

    } 

、その結果を持って、法の下にしようと、何度も試してみましたこれは私のために働いた。戻り値の型を「Any」から「UIButton」に変更しました

1

以下の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 
    } 

} 
関連する問題