私は現在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にアップグレードしています。
Swift 3.0 Xcode 8.0+
すべてのボタンを以下のメソッドシグネチャに接続します。引数送信者のタイプがUIButton(またはUIButtonのサブクラス)であることを確認して、ストーリーボードから残りのボタンを接続します。
@IBAction func dialconfigTapped(_ sender: UIButton) {}
sender.tagを使用して、タップされたボタンを識別します。
この手順に従ってください
1。View ControllerでIBActionを作成
.hファイル内
-(IBAction)action:(id)sender;
.mファイル
-(IBAction)action:(id)sender{
}
2。すべてのボタンをこのアクションに接続します
。次の図に従って各ボタンにタグを付けます
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]);
}
IBOutletCollection
を使用できます。次のリンクがその使用に役立ちます
http://useyourloaf.com/blog/2011/03/28/interface-builder-outlet-collections.html
Xcode 5では、最初のボタンにアクションを設定した後、アプリをビルドする必要があります。これにより、他のボタンアクションをこの同じIBActionメソッドに接続できます