Как установить кнопку редактирования на UITableView, который является подпредставлением на iOS - PullRequest
2 голосов
/ 15 марта 2012

У меня есть UIViewController, который имеет UITableView как дочерний элемент помимо других элементов. Я хочу добавить поддержку редактирования для этого tableView с помощью этой простой строки:

self.navigationItem.rightBarButtonItem = self.editButtonItem;

Это работает, если я установлю это на тип представления UITableViewController, но очевидно, что это не работает на tableView, которые являются subviews. На самом деле она показывает кнопку редактирования, но действие редактирования не запускается.

В любом случае, если для этого не существует элегантного решения, я просто реализую пользовательскую кнопку редактирования.

Спасибо!

Ответы [ 4 ]

3 голосов
/ 08 июня 2012
- (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];

    }

}
2 голосов
/ 04 декабря 2013

Вам нужно реализовать setEditing: анимированные сами:

- (void)setEditing:(BOOL)editing animated:(BOOL)animated
{
    [self.tableView setEditing:editing animated:animated];
    [super setEditing:editing animated:animated];
}
1 голос
/ 15 марта 2012

Я только что нашел решение.Замена self.editButtonItem на self.myTableViewController.editButtonItem так:

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

Работает как шарм.Может ли быть проще?:)

0 голосов
/ 15 марта 2012

self.navigationItem.leftBarButtonItem = self.editButtonItem;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...