web-dev-qa-db-ja.com

UIBarButtonItemにカスタムセレクターを追加します

私はiOSの初心者です。クリックすると独自の機能を実行するナビゲーションバーボタンがあります。それを行うための最良の方法は何ですか?

UIBarButtonItem *doneBarButtonItem=[[UIBarButtonItem alloc] init];
doneBarButtonItem.title=@"Done";
self.navigationItem.rightBarButtonItem = doneBarButtonItem;
[doneBarButtonItem release];
14
Suchi

1つの方法は、ターゲットとアクションで初期化することです。

UIBarButtonItem *buttonHello = [[UIBarButtonItem alloc] initWithTitle:@"Say Hello"     
    style:UIBarButtonItemStyleBordered target:self action:@selector(sayHello:)];

別の方法は、作成後にターゲットとアクションを設定することです

[buttonHello setTarget:self];
[buttonHello setAction:@selector(sayHello:)];

ターゲットは、呼び出されるオブジェクトのインスタンスです。 selfの場合、メソッドはオブジェクトのこのインスタンスにあります。

アクションは、呼び出されるメソッドです。通常、これをIBActionで装飾して、それがアクションであることをデザイナーに示唆します。 voidにコンパイルされます。

- (IBAction)sayHello:(id)sender
{
    // code here
}
44
bryanmac

使用できるさまざまなinit呼び出しがあり、ここの「インスタンスメソッド」セクションにリストされています。

http://developer.Apple.com/library/ios/#documentation/uikit/reference/UIBarButtonItem_Class/Reference/Reference.html

- (id)initWithBarButtonSystemItem:(UIBarButtonSystemItem)systemItem target:(id)target action:(SEL)action
- (id)initWithCustomView:(UIView *)customView
- (id)initWithImage:(UIImage *)image style:(UIBarButtonItemStyle)style target:(id)target action:(SEL)action
- (id)initWithTitle:(NSString *)title style:(UIBarButtonItemStyle)style target:(id)target action:(SEL)action

また、ここで使用中のサンプルを確認できます。

実行時にUIBarButtonItemのターゲットとアクションを設定する方法

お役に立てれば!

2
Luke