【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つしか置けないので、重なったりすることはないのでは?と推測。