Требуется несколько кранов в UITableView для контрольных точек

Будьте нежны, я учусь.

Приведенный ниже код действительно работает отлично, за исключением того факта, что после того, как я впервые нажал на строку (которая правильно помещает галочку), я должен дважды нажать ячейку, чтобы удалить эту же галочку.

Точно так же, после его удаления, требуется два крана, чтобы вернуть галочку.

Как это исправить?

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *thisCell = [tableView cellForRowAtIndexPath:indexPath]; NSInteger selectedRow = indexPath.row; if (thisCell.accessoryType == UITableViewCellAccessoryNone) { thisCell.accessoryType = UITableViewCellAccessoryCheckmark; if (selectedRow == 0) dm = 1; else if (selectedRow == 1) athero1 = 1; else if (selectedRow == 2) athero2 = 1; else if (selectedRow == 3) athero3 = 1; else if (selectedRow == 4) familyHistory1 = 1; else if (selectedRow == 5) familyHistory2 = 1; } else { thisCell.accessoryType = UITableViewCellAccessoryNone; if (selectedRow == 0) dm = 0; else if (selectedRow == 1) athero1 = 0; else if (selectedRow == 2) athero2 = 0; else if (selectedRow == 3) athero3 = 0; else if (selectedRow == 4) familyHistory1 = 0; else if (selectedRow == 5) familyHistory2 = 0; } } 

убедитесь, что для параметра allowsMultipleSelection не установлено значение YES . Значение по умолчанию, установленное, когда это свойство не используется, равно NO . Если вы используете это свойство в любом месте своего класса, попробуйте установить его в NO чтобы проверить, работает ли он. Это вызовет необходимость 2 кранов для выбора строки.

 self.tableView.allowsMultipleSelection = NO; 

Имейте массив для хранения выбранных индексов строк. В -didSelect проверьте, уже ли указатель строки уже присутствует в массиве, если не добавить его, иначе удалите его из массива. И перезагрузите таблицу. Это все. Я считаю, что это сработает. :]

Возможно ли, что вы нажимаете два UITableViewControllers на свой стек навигационного контроллера?

У меня это случилось со мной, и проблема заключалась в отсутствии «перерыва» в инструкции switch, которая заставила второго TableViewController получить нажатие. Все, что было на вид, требовало двух кранов, даже моей кнопки «Назад».

  • UITableView: перемещение ячейки в другую с помощью drag & drop
  • Как отключить didSelectRowAtIndexPath в UIView Нажмите внутри пользовательского TableViewCell?
  • Как реализовать SearchBar NOT в заголовке таблицы
  • Динамический расширяемый вид таблицы
  • Загрузить изображение async для NSTextAttachment для UITableViewCell
  • Пользовательский метод делегирования не вызывается
  • - показывает изменения только после прокрутки
  • UITableView не обновляется, когда didChangeObject называется NSFetchedResultsController
  • асинхронная загрузка для UITableView
  • Определение первого и последнего UITableViewCell
  • UILabel, созданный в didSelectRowAtIndexPath, продолжает повторяться в том же положении
  • Interesting Posts

    Как преобразовать тип double в CGAffineTransform?

    Рисование пользовательской формы и анимация пользовательских свойств с помощью CALayers?

    Как удалить значки на значок трамплина при возобновлении приложения?

    Пользовательский переход дает «Неуравновешенные вызовы для перехода на начало / конец». Ошибка

    UITextField – просмотр вставки и удаления в тексте

    Настройка UISlider для обработки касания, которое начиналось снаружи

    iOS UIWebView loadRequest занимает слишком много времени

    Ошибки загрузчика приложения Xcode – Как обойти требования поддержки ориентации многозадачности ipad?

    iOS9 UIPageViewController сбой во время доступа

    Показать текст метки как абзац в ios sdk

    Как я могу очистить представление от контроллера навигации в ios

    iPhone – тестирование автоматизации?

    Как я могу запустить ссылку на vimeo

    FBFriendPickerViewController Crashing

    Местное уведомление каждый конкретный день недели

    Давайте будем гением компьютера.