0

問題があります: プログラムで UiNavigation コントローラーに UIBarButton を作成しました。ただし、押すとアラートが表示されるようにしたい。ただし、カスタム テキストでカスタム バー ボタンを使用すると、機能しません。

self.navigationItem.rightBarButtonItem = self.editButtonItem;
UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithTitle:@"Subscribe" style:UIBarButtonItemStyleDone target:nil action:@selector(subscribe:)];

self.navigationItem.rightBarButtonItem = addButton;

しかし、通常のバー ボタンを実行すると、正常に動作します。

self.navigationItem.rightBarButtonItem = self.editButtonItem;
UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(subscribe:)];

self.navigationItem.rightBarButtonItem = addButton;

ここにボイドがあります:

-(void)subscribe:(id)sender {

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Highscore" message:@"" delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles:nil, nil];

    [alert show];

}

前もってありがとう、ラフィー

4

2 に答える 2

2

init 呼び出しのようにnil渡したものを置き換えますtarget:

[[UIBarButtonItem alloc] initWithTitle:@"Subscribe" 
                                 style:UIBarButtonItemStyleDone 
                                target:nil  <---
                                action:@selector(subscribe:)];

self。alloc init は次のようになります。

[[UIBarButtonItem alloc] initWithTitle:@"Subscribe" 
                                 style:UIBarButtonItemStyleDone 
                                target:self
                                action:@selector(subscribe:)];

nil へのメッセージは効果がありません ;-)

于 2013-09-01T10:24:06.090 に答える
0

targetでなければなりselfませんnil。そうでなければ、誰もアクションを受け取りません!

于 2013-09-01T10:24:14.200 に答える