ここでは、デフォルトのバー ボタン アイテム editButtonItem を使用します。
@property (nonatomic, assign) BOOL isEditing;
- (void)viewDidLoad {
[super viewDidLoad];
self.navigationItem.rightBarButtonItem = self.editButtonItem;
[self setupInterface];
}
- (void)setupInterface {
if (self.dataElement) {
self.isEditing = NO;
self.nameTextField.text = self.dataElement.name;;
} else {
self.isEditing = YES;
self.deleteButton.hidden = YES;
}
}
- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
editing = self.isEditing;
[super setEditing:editing animated:YES];
if (editing) {
[self saveAction];
[self.navigationController popViewControllerAnimated:YES];
} else {
self.isEditing = !self.isEditing;
}
}
- (void)setIsEditing:(BOOL)isEditing {
_isEditing = isEditing;
if (isEditing) {
self.deleteButton.hidden = NO;
self.nameTextField.userInteractionEnabled = YES;
} else {
self.deleteButton.hidden = YES;
self.nameTextField.userInteractionEnabled = NO;
}
}
ただし、ボタンのタイトルを Edit から Done に変更することはありません。自動的に変更でき、次のように割り当てたくないことはわかっています。 self.editButtonItem.title = @"Done";