私は3つのボタンを持つメインビューを持っています。いずれかのボタンをクリックすると、サブビューが追加されます。iOS - addSubviewに送信者(ボタン)名を渡します
のボタンは異なるタイトルを持っているし、すべての「のSwitchView」のコードは以下の通りですIBAction「のSwitchView」
にリンクされています。
- (IBAction)switchView:(id)sender{
secondView *myViewController = [[secondView alloc] initWithNibName:@"secondView" bundle:nil];
[self.view addSubview:myViewController.view];
}
「secondView」が正しく読み込まれ、すべて正常に動作します。
問題は、どのボタンが送信者であるかを知りたいということです。
ボタンごとに3つのサブビューを作成したくありません。コードとXIBは全く同じであろう>
唯一の違いは、私が(クリックされたボタン)送信者が誰であるかに応じて第2のビュー(viewDidLoadメソッド)で設定したい変数となり
これは可能ですか?または、私は3つのサブビューを作成する必要があります - 各ボタンごとに1つ?
ご協力いただきありがとうございます。
THanks、しかし多分私は問題を正しく説明しなかった。 switchViewメソッド内でSenderを取得する方法を知っています。 それ以降の問題です。 switchViewメソッドはサブビューを開始します。このサブビューには、独自のsecondView.XIB、secondView.h、およびsecondView.mファイルがあります。 secondView.m((void)viewDidLoadメソッド内)どのボタンがsecondView.XIBを開始したかを調べたい – user885483
これはおそらく不可能です。回避策は、switchViewメソッド内の "グローバル変数"にSenderタグを格納することです。 (私はNSUserDefaultsのキーとしてそれを保存することができます)。次に、それをsecondViewサブビューで取得します。 – user885483
さて、分かりました。私のアプローチはあなたの - (IBAction)switchview:(id)送信者の中で新しいビューコントローラを呼び出すことです。メソッドを呼び出し、sender.tagを(id)initWith ...呼び出しのプロパティとして渡します。例: MyViewController * view = [[MyViewController alloc] initWithSenderTag:button.tag]; しかし、あなたはあなたのMyViewController内のグローバル変数としてbutton.tagを保存しなければならず、あなたの - (void)viewDidLoad内でチェックしてください。方法。 – Markus