メソッドをこのボタンに関連付ける方法は?
-
29-09-2019 - |
質問
画像とテキストの両方を表示するナビゲーションバーボタンがあります。これはコードです:
UIImage *saveImage = [UIImage imageNamed:@"star.png"];
UIButton *saveButton = [UIButton buttonWithType:UIButtonTypeCustom];
[saveButton setBackgroundImage:saveImage forState:UIControlStateNormal];
[saveButton setTitle:@"Save" forState:UIControlStateNormal];
saveButton.frame = (CGRect) {
.size.width = 100,
.size.height = 30,
};
UIBarButtonItem *barButton= [[UIBarButtonItem alloc] initWithCustomView:saveButton];
[self.navigationItem setRightBarButtonItem:barButton animated:YES];
私はこれを試しました
[barButton setAction:@selector(saveArray)];
しかし、それはうまくいきません。
解決
ターゲットも指定する必要があることを忘れないでください。アクション/ターゲットをuibuttonオブジェクト自体に設定できます。
[saveButton addTarget:target action:@selector(saveArray) forControlEvents:UIControlEventTouchUpInside];
ターゲット/アクションをuibarbuttonitemに直接設定しようとしましたが、何らかの理由でカスタムビューのためにuibuttonの場合は機能しないようです。
他のヒント
ターゲットを設定することを覚えていましたか?目的の方法が同じクラスに属している場合、次のことができます。
[barButton setTarget:self];
そうは言っても action
と target
両方ともプロパティ(OBJ-C 2.0の新規)です。DOT表記法の使用を検討してください。
barButton.action = @selector(saveArray:)
barButton.target = self;
所属していません StackOverflow