Как инициализировать кнопку с помощью editButtonItem - PullRequest
0 голосов
/ 28 августа 2010

У меня есть табличное представление, в этом табличном представлении я настраиваю заголовок раздела, который я хочу содержать кнопку редактирования.Я знаю, что есть встроенная поддержка для чего-то подобного, если мой viewcontroller является частью цепочки навигации, но есть ли способ сделать это без него, или единственный вариант - вручную установить кнопку и вызвать действие, которое заменитзаголовок и свойство редактирования?Кстати, я знаю, что код, который я написал ниже, неправильный, просто интересно, есть ли удобный способ конвертировать UIBarButtonItem в UIButton.Спасибо

-(UIView*) headerView
{
    if (headerView)
        return headerView;

    float w = [[UIScreen mainScreen] bounds].size.width;
    CGRect headerViewFrame = CGRectMake(0,0, w,48);
    headerView = [[UIView alloc] initWithFrame:headerViewFrame];

    [headerView addSubview:[self editButtonItem]]; // I want to do something like that
}

1 Ответ

1 голос
/ 05 апреля 2011

Нет способа конвертировать UIBarButtonItem в UIButton. Если вы посмотрите на каждый из их суперклассов, то обнаружите, что UIBarButtonItem наследует от UIBarItem, который наследует от NSObject (вообще не связан с UIButton, который от UIView и соответствует протоколу UIResponder).

Для этой конкретной проблемы вы можете переопределить следующий метод:

- (void) setEditing:(BOOL)editing animated:(BOOL)animated {
    [super setEditing: editing animated: animated];
    [self.tableView setEditing:editing animated:animated];
}

и кнопка (вы можете использовать ее в качестве заголовка раздела) запускает метод, который устанавливает статус редактирования

...