【Xcode5.1.1 + iOS 7.1 + MacOX10.9.4】
カメラロールでサムネイル表示したときに、右上に出る「選択」>「キャンセル」の切替と同じやつです。これってViewは切り換えてないよなあと思ったので、ボタンの差し替えをテストしてみました。
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
//削除ボタンを追加
UIBarButtonItem *delButton = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemTrash
target:self
action:@selector(delButtonDidPush:)];
self.navigationItem.rightBarButtonItem = delButton;
}
-(void)delButtonDidPush:(UIBarButtonItem *)button
{
NSLog(@" -- trash!!");
//
UIBarButtonItem *canelButton = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemCancel
target:self
action:@selector(cancelButtonDidPush:)];
self.navigationItem.rightBarButtonItem = canelButton;
}
-(void)cancelButtonDidPush:(UIBarButtonItem *)button
{
NSLog(@" -- cancel!!");
//削除ボタンを追加
UIBarButtonItem *delButton = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemTrash
target:self
action:@selector(delButtonDidPush:)];
self.navigationItem.rightBarButtonItem = delButton;
}
これでちゃんと動いてるし、タップのイベントも片方しか出てこないので、たぶんいいはず。
UIToolBarについては、こんな記事が。
なんとなく|UINavigationController の UIToolBar で Button 表示を切り替えたいメモ
たぶんnavigationItem.rightBarButtonItemは1つしか置けないので、重なったりすることはないのでは?と推測。