如何在UITableView上设置编辑按钮,UITableView是iOS上的子视图



我有一个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;

最新更新