2016-10-19 4 views
0

У меня возникает странный сбой, когда я могу использовать предыдущий контроллер представления до того, как контроллер верхнего уровня был уволен.Странное поведение во время перемотки назад назад

На моем основном контроллере представления у меня есть представление таблицы с функцией делегирования didSelectRowAtIndexPath. Функция ниже:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    performSegueWithIdentifier("commentsSegue", sender: self) 
} 

Это прекрасно работает, однако, если я уже показывать этот экран, я могу выбрать его снова, если я наполовину красть назад. Это сложно объяснить, но вы можете использовать палец для прокрутки назад, а другой - для выбора ячейки на главном диспетчере просмотра. Это создает новый переход к новой «commentSegue». Я могу делать это столько раз, сколько мне нравится, и он будет действовать много раз.

Я попытался преодолеть это с помощью

if (self.presentingViewController?.presentedViewController == self) { 

, а также

if (self.navigationController?.topViewController.title == self.title) { 

Но обе эти функции возвращают основной ViewController в качестве активного контроллера представления вместо контроллера «commentsSegue».

Как я могу остановить это поведение?

ответ

0

Наведите указатель мыши на Notification, который проверяет, установлен ли ваш контроллер назначения .isKindOfClass. Если нет, сделайте segue.

Смежные вопросы