ошибка модификации аксессуара iphone (target-c) - PullRequest
0 голосов
/ 30 января 2010

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

Я удалил метод tableView:accessoryTypeForRowWithIndexPath, но мое решение пока не работает.

Проблема заключается в том, что теперь, когда я нажимаю кнопку «Редактировать» в представлении DetailViewController, типы аксессуаров «редактирование» не отображаются.

Ниже приведен мой фактический код, и я также включил для этого файл проекта , потому что я отчаянно нуждаюсь в решении, которое работает.

У меня вопрос: какой код мне нужно изменить, чтобы изменить аксессуар, и никаких других эффектов. (Я знаю, что RootViewController работает, но как мне заставить таблицу DetailViewController сделать то же самое?)

С уважением, @ norskben

Скачать файл проекта: Получить здесь.

setEditing

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

    [tableView reloadData];
}

cellForRowAtIndexPath

- (UITableViewCell *)tableView:(UITableView *)tblView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
        cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
        cell.editingAccessoryType = UITableViewCellAccessoryCheckmark;
    }

    switch(indexPath.section) {
        case 0:
            cell.textLabel.text = coffeeObj.coffeeName;
            break;
        case 1:
            cell.textLabel.text = [NSString stringWithFormat:@"%@", coffeeObj.price];
            break;
    }

    return cell;
}

Скачать файл проекта: Получить здесь.

1 Ответ

1 голос
/ 30 января 2010

В вашем setEditing:animated: методе вы делаете две вещи, которые вам действительно не следует делать. Перезагрузка таблицы данных там не имеет смысла. И если вам придется менять кнопки на панели вкладок вручную, значит, вы их неправильно настроили. Система позаботится об этом за вас. Если вы правильно настроили кнопку редактирования, вам даже не нужно вручную вызывать setEditing:animated: на самом деле.

Я думаю, вам следует просмотреть UITableView пример кода.

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