iPhone シミュレーターのポートレート モードまたはデバイスのランドスケープでは、すべてのナビゲーション バー ボタンが表示されますが、デバイスのポートレート モードで使用すると、ボタンは表示されません。以下は、ナビゲーション バーの画像です。
私がテスト用に持っているデバイスは、iOS 6.1.3 (10B329) を実行している iPhone 4S です。私が使用しているシミュレーターは、iOS 6.0/6.1 を実行するバージョン 7.0 (463.9.4) です。
編集モードで [検索] ボタンを削除することを検討していますが、モードに関係なくユーザーがこのオプションを利用できるようにしたいと考えています。
ヘルプや洞察をいただければ幸いです。
編集:
右のボタンは最初に作成されviewDidLoad:
、次のように ViewController に追加されます。
_deleteBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemTrash target:self action:@selector(deleteRows:)];
_deleteBarButtonItem.tintColor = [UIColor redColor];
_searchBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSearch target:self action:@selector(searchButtonClicked:)];
self.navigationItem.rightBarButtonItems = @[_searchBarButtonItem, self.editButtonItem];
そして、編集モードに入るとき:
- (void)setEditing:(BOOL)editing animated:(BOOL)animated
{
[super setEditing:editing animated:animated];
if (self.tableView.isEditing) {
// turn off editing
_deleteBarButtonItem.enabled = NO;
[self.tableView setEditing:NO animated:animated];
[self.editButtonItem setStyle:UIBarButtonItemStylePlain];
self.navigationItem.rightBarButtonItems = @[_searchBarButtonItem, self.editButtonItem];
} else {
// turn on editing
[self.tableView setEditing:YES animated:animated];
[self.editButtonItem setStyle:UIBarButtonItemStyleDone];
self.navigationItem.rightBarButtonItems = @[_searchBarButtonItem, _deleteBarButtonItem, self.editButtonItem];
}
}