2

我有一个 UIViewController,除了其他元素之外,它还有一个 UITableView 作为孩子。我想用这个简单的行在该 tableView 上添加编辑支持:

self.navigationItem.rightBarButtonItem = self.editButtonItem;

如果我在 UITableViewController 视图类型上设置它,它会起作用,但显然这不适用于作为子视图的 tableView。实际上它显示了编辑按钮,但没有触发编辑操作。

无论如何,如果没有优雅的解决方案,我将简单地实现自定义编辑按钮。

谢谢!

4

4 回答 4

3
- (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];

    }

}
于 2012-06-08T12:32:58.243 回答
2

您需要自己实现 setEditing:animated :

- (void)setEditing:(BOOL)editing animated:(BOOL)animated
{
    [self.tableView setEditing:editing animated:animated];
    [super setEditing:editing animated:animated];
}
于 2013-12-04T16:57:23.593 回答
1

我刚刚找到了解决方案。换成self.editButtonItem这样self.myTableViewController.editButtonItem

self.navigationItem.rightBarButtonItem = self.myTableViewController.editButtonItem;

它就像一个魅力。可以更简单吗?:)

于 2012-03-15T07:18:17.440 回答
0

self.navigationItem.leftBarButtonItem = self.editButtonItem;

于 2012-03-15T07:16:03.380 回答