我有一个UIViewController,除了其他元素外,它还有一个子元素UITableView。我想添加对该表的编辑支持用这行简单的代码查看:
self.navigationItem.rightBarButtonItem = self.editButtonItem;
如果我在UITableViewController视图类型上设置此项,它会起作用,但显然这在作为子视图的tableView上不起作用。实际上,它显示了编辑按钮,但编辑操作没有被触发。
无论如何,如果没有优雅的解决方案,我将简单地实现自定义编辑按钮。
谢谢!
- (void)viewDidLoad
{
[super viewDidLoad];
self.title = @"My View Controller";
self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemEdit target:self action:@selector(editButtonSelected:)] autorelease];
}
- (void) editButtonSelected: (id) sender
{
if (tableView1.editing) {
self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemEdit target:self action:@selector(editButtonSelected:)] autorelease];
[self.tableView1 setEditing:NO animated:YES];
} else {
self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(editButtonSelected:)] autorelease];
[self.tableView1 setEditing:YES animated:YES];
}
}
您需要实现setEditing:动画化自己:
- (void)setEditing:(BOOL)editing animated:(BOOL)animated
{
[self.tableView setEditing:editing animated:animated];
[super setEditing:editing animated:animated];
}
我刚刚找到了一个解决方案。用self.myTableViewController.editButtonItem
替换self.editButtonItem
,如
self.navigationItem.rightBarButtonItem = self.myTableViewController.editButtonItem;
它就像一个符咒。它能更简单吗?:)
self.navigationItem.leftBarButtonItem=self.editButtonItem;