Проблема iOS7 с модульным контроллером просмотра от выбора пользовательских ячеек

Редактировать

После дальнейшего расследования я подумал, что было бы лучше переформулировать вопрос с дополнительной информацией по секретной проблеме.

Эта проблема, похоже, происходит только на iOS7. Я тестировал на iOS6, и это работает без проблем.

– Настройка. У вас есть один UIViewController (первый VC, например), это содержит tableView и является источником данных / делегатом. Когда ячейка в tableView выбрана / задействована, вы выполняете segue для второго контроллера просмотра (пока это может быть пустым).

вопрос

Проблема в том, что segue не происходит немедленно. В течение секунды, как и ожидалось. Нет данных, передаваемых в segue или что-либо, загружаемое во второй контроллер представления, поэтому вы ожидаете, что он будет мгновенным.

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

–Ночная тенденция. Что я заметил, это когда возникает проблема. Симулятор / устройство будет ждать, пока начнется следующая минута, а затем сила через нагрузку контроллера модального представления. ИЛИ Когда проблема возникает, вы можете щелкнуть / коснуться снова в любом месте экрана устройства, чтобы «принудительно» загрузить нагрузку.

Проблема может быть воспроизведена в новом проекте только с основами. Я загрузил образец проекта zip, который включает это .

Дополнительный код (при необходимости)

У меня есть настраиваемая настройка ячеек. Когда ячейка выбрана, я выполняю следующее:

 -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { NSLog(@"%s",__PRETTY_FUNCTION__); if (indexPath.section == 0) { [self performSegueWithIdentifier:@"selectGameTurnDiff" sender:self]; } } 

Затем у меня есть следующее в prepareForSegue:

 -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { NSLog(@"%s",__PRETTY_FUNCTION__); [super prepareForSegue:segue sender:sender]; } 

логирование

Вот несколько примеров журналов, чтобы показать это: Запустить 1
2013-10-09 23: 54: 09.855 Приложение [14954: a0b] – [FirstViewController tableView: didSelectRowAtIndexPath:]
2013-10-09 23: 54: 09.857 Приложение [14954: a0b] – [FirstViewController prepareForSegue: отправитель:]
2013-10-09 23: 55: 00.004 Приложение [14954: a0b] – [SecondViewController viewDidLoad]
2013-10-09 23: 55: 00.004 Приложение [14954: a0b] – [SecondViewController viewWillAppear:]
2013-10-09 23: 55: 00.511 Приложение [14954: a0b] – [SecondViewController viewDidAppear:]

Запуск 2
2013-10-09 23: 56: 21.900 App [14954: a0b] – [FirstViewController tableView: didSelectRowAtIndexPath:]
2013-10-09 23: 56: 21.901 App [14954: a0b] – [FirstViewController prepareForSegue: отправитель:]
2013-10-09 23: 57: 00.003 Приложение [14954: a0b] – [SecondViewController viewDidLoad]
2013-10-09 23: 57: 00.003 Приложение [14954: a0b] – [SecondViewController viewWillAppear:]
2013-10-09 23: 57: 00.508 Приложение [14954: a0b] – [SecondViewController viewDidAppear:]

Выполнить 3
2013-10-09 23: 57: 43.387 Приложение [14954: a0b] – [FirstViewController tableView: didSelectRowAtIndexPath:]
2013-10-09 23: 57: 43.388 Приложение [14954: a0b] – [FirstViewController prepareForSegue: отправитель:]
2013-10-09 23: 58: 00.004 Приложение [14954: a0b] – [SecondViewController viewDidLoad]
2013-10-09 23: 58: 00.004 Приложение [14954: a0b] – [Просмотр второго контроляВопрос:
2013-10-09 23: 58: 00.510 Приложение [14954: a0b] – [SecondViewController viewDidAppear:]

One Solution collect form web for “Проблема iOS7 с модульным контроллером просмотра от выбора пользовательских ячеек”

После заполнения Radar Apple ответила добавлением:

 dispatch_async(dispatch_get_main_queue(), ^{}); 

В конце следующего метода, который делает трюк:

 -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 

В методе, который представляет контроллер, вы можете запланировать блок no-op, который заставит runloop вращаться и не будет задержки.

Radar Ref: 15196237, не стесняйтесь записывать другое и ссылаться на это.

  • iOS 7 UITableView: это ошибка или это я?
  • Признать два пальца в жестком жесте в UITableView
  • UILabels в пользовательском UITableViewCell никогда не инициализируется
  • Простой UITableView в Swift - неожиданно найденный nil
  • Как определить, что UITableView находится в режиме редактирования?
  • UITableView приходит в обход при добавлении UILabel с cornerRadius в каждую ячейку
  • Как переключить UITableView и UICollectionView
  • Несколько checkMark, когда строка выбрана в UITableView IOS
  • Разделители строк таблицы, например, в Центре уведомлений в iOS7
  • Удаление из отфильтрованных результатов поиска UISearchController
  • UINavigationBar выше UITableView
  • Interesting Posts

    Невозможно установить свойства в пользовательском UITableViewCell

    Требуются ли специальные действия для создания и использования Framework, который можно использовать в расширении Apple Watch?

    Как захватить видеоизображение с аудио и пользовательской камерой лица в объективе c?

    Добавьте права на iCloud-контейнеры на ваш идентификатор приложения

    Сопряжение CoreBluetooth с Lego NXT

    iPhone UITableView: как удалить интервал между разделами в таблице стиля группы?

    Удалить строку в виде таблицы с помощью fetchedResultController

    AvAudioSession не будет работать в iOS7?

    Масштабирование GMSMapView для соответствия маркерам GMSMarker?

    iOS и RestKit: как получить ответ текста / html?

    Как сделать SKSpriteNode, который не реагирует на касание, если пиксели прозрачны?

    Изменить цвет заголовка кнопки в UIAlertView

    Эффект размытия исчез на iOS 7.1

    Проблема с выпуском CALayerDelegate

    Как я могу локализовать стандартный элемент управления iOS?

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.