我有一个导航控制器。我想将编辑按钮放在工具栏的底部而不是顶部导航栏中。
self.navigationItem.leftBarButtonItem = self.editButtonItem;
我遇到的问题是,当我将编辑按钮添加到底部工具栏时。像这样:
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete) {
// Delete the row from the data source
[self.christmasGifts removeGiftAtIndexPath:indexPath];
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
}
}
- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
[super setEditing:editing animated:animated];
[self.tableView setEditing:editing animated:YES];
//Do not let the user add if the app is in edit mode.
if(editing)
self.navigationItem.rightBarButtonItem.enabled = YES;
else
self.navigationItem.rightBarButtonItem.enabled = YES;
}
然后链接编辑按钮 setEditing: 在工具栏中,它不会像顶部导航中的编辑按钮那样显示完成按钮。它只是保持不变。
但是您可以删除一个项目,但您不能使用底部按钮再次将状态重置为正常。
我需要能够从此导航控制器返回到前一个控制器。但是编辑按钮隐藏了后退按钮。
编辑。
我知道我可以通过代码添加工具栏。
UIBarButtonItem *editButton = [[UIBarButtonItem alloc]
initWithTitle:@"Edit"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(setEditing:)];
[[UIBarButtonItem appearance] setTintColor:[UIColor colorWithRed:70/255.0f green:155/255.0f blue:19/255.0f alpha:1.0]];
NSArray *arrBtns = [[NSArray alloc]initWithObjects:editButton,anotherButton, nil];
self.toolbarItems = arrBtns;
和
[self.navigationController setToolbarHidden:NO];
甚至
UIToolbar *toolBar=[[UIToolbar alloc]initWithFrame:CGRectMake(0, 500, 400, 40)];
[self.tableView addSubview:toolBar];