2014-01-11 2 views
2

У меня есть приложение, в котором у меня есть контроллер навигации, корневой режим и один вид, который корень подталкивает через segue. Я не делаю ничего продвинутого, и я не назову segue несколько раз, но когда я второй второй контроллер представления второй раз, экран становится черным, и мне нужно заставить выйти из приложения. Подводя итог, когда я открываю приложение, я нажимаю кнопку, которая подталкивает ко второму виду, я возвращаю ее обратно в корневой вид, который отлично работает, но когда я делаю это снова, весь экран становится черным. Кто-нибудь испытал это раньше или знает, как я могу это исправить?Навигационный контроллер поворачивает черное на PopViewController

Спасибо за любую помощь.

Это код, который я использую, чтобы показать контроллер

[self performSegueWithIdentifier:@"showSecondView" sender:self]; 

И это, чтобы закрыть вторую точку зрения

[self.navigationController popViewControllerAnimated:YES]; 
+0

Кажется, что вы выталкиваете все контроллеры представлений из стека, и на дисплее нет контроллера отображения. Некоторый код поможет найти проблему. – danypata

+0

Я добавил код. Это очень просто, и я использовал его много раз, поэтому не думал, что это необходимо. Я пробовал комментировать их, поэтому я знаю, что я не называю это несколько раз. – harryisaac

+0

Значит, вы делаете один толчок и один поп? А после этого у вас черный экран? Или вы делаете push, pop, push, pop, а затем у вас есть черный экран? – danypata

ответ

2

Оказывается, я был на самом деле выполнения SEGUE только два раза на второй время. Проблема заключалась в том, что с помощью уведомления NSNotificationCenter в представлении корневого представления, чтобы сообщить корневому представлению о переходе, но не отменить регистрацию наблюдателя, чтобы при возврате корневого представления я снова подписался на уведомление. Это означало, что второй раз вызывали дважды во второй раз, потому что уведомление было получено дважды.

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