web-dev-qa-db-ja.com

ストーリーボードの複数のボタンを単一のアクションに接続する方法は?

私は現在Xcode 4.6を使用しており、単一のView Controllerの下で、異なるUIViewで複数のボタンを選択する方法を疑問に思っています。 CMDクリックは機能しないようです。 Xcode 4.6では、IBの2つのボタンが同じアクションを共有できるようにする唯一の方法は、それらを一度に選択し、View Controllerにドラッグすることだけなので、この機能が必要です。

私の究極の目標は、Xcode 4.6のストーリーボードを使用して、2つの異なるUIViewで2つの異なるボタンを取得し、同じアクションに一致させることです。これを行う方法はありますか?

編集:私は現在運もなくXcode 4.6.1を使用しており、4.6.2にアップグレードしています。

19
jab

一度にすべてを選択せず​​に、複数のボタンを単一のアクションに接続できます。

ただし、アクションを作成した後、Xcodeでアクションに別のコントロールを接続できるようにするには、アクションを含むソースファイルを保存する必要があります。

Xcode 4.6.2でこれを行いました。

connecting buttons to action

75
rob mayoff

Swift 3.0 Xcode 8.0+

すべてのボタンを以下のメソッドシグネチャに接続します。引数送信者のタイプがUIButton(またはUIButtonのサブクラス)であることを確認して、ストーリーボードから残りのボタンを接続します。

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

sender.tagを使用して、タップされたボタンを識別します。

9
San

この手順に従ってください

1。View ControllerでIBActionを作成

.hファイル内

-(IBAction)action:(id)sender;

.mファイル

-(IBAction)action:(id)sender{


}

2。すべてのボタンをこのアクションに接続します

enter image description here

。次の図に従って各ボタンにタグを付けます enter image description here

4。今、あなたのアクション関数の中にこれらを置いてください

    -(IBAction)action:(id)sender{

        UIButton *button=(UIButton*)sender;

        if(button.tag==1){

            //your stuff!
        }
        if(button.tag==2){

            //your stuff!
        }
        if(button.tag==3){

            //your stuff!
        }

    }

実行してください。

これはIBで実行できるはずです。 IBでは、関連するクラスの同じIBActionを単にポイントします。

アクションが発生したときに、どのボタンからアクションを取得したかを知りたい場合は、ボタンからテキストを読み取るか、IBから設定する必要があるIBAction属性を使用して、tagメソッド内のボタンを区別できます。 。

- (IBAction)buttonClicked:(id)sender {
    NSLog(@"Button pressed: %@", [sender currentTitle]);
    NSLog(@"Button pressed: %@", [sender tag]);
}
1

IBOutletCollectionを使用できます。次のリンクがその使用に役立ちます

http://useyourloaf.com/blog/2011/03/28/interface-builder-outlet-collections.html

0
Vinodh

Xcode 5では、最初のボタンにアクションを設定した後、アプリをビルドする必要があります。これにより、他のボタンアクションをこの同じIBActionメソッドに接続できます

0
onmyway133