2013-05-04 2 views
0

Я не уверен, что именно сломалось в моем приложении, но когда я сейчас пытаюсь перейти на контроллер вида, он не будет работать при анимации: NO. Когда анимированный: ДА, он работает, но выводит сообщение об ошибке:pushViewController не работает при анимации: NO

Unbalanced calls to begin/end appearance transitions 

Вот мой (довольно простой) код для вызова его:

JViewerViewController *viewer = [[JViewerViewController alloc] init]; 
[self.navigationController pushViewController:viewer animated:NO]; 

Я сделал NSLog на навигационном контроллере, зритель А.Н. видимый контроллер. Интересно, что он считает зрителя видимым контроллером вида.

+0

Вы используете панели вкладок контроллер – Ayush

+1

Пожалуйста, проверьте следующее: http://stackoverflow.com/questions/8224366/unbalanced-calls-to-begin-end-appearance-transitions-warning-when-push- a-view Может решить вашу проблему. –

+0

@ Аюш Нет, я не. – Andrew

ответ

4

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

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

Надеюсь, это поможет вам.

+0

+1 для краткого и приятного объяснения ... !!!! – Kamarshad

0
JViewerViewController *viewer = [[JViewerViewController alloc] init]; 
[self.navigationController pushViewController:viewer animated:NO]; 

вызов этого метода внутри ViewWillAppear.

-(void)viewWillAppear:(BOOL)animated 
{ 
ViewerViewController *viewer = [[JViewerViewController alloc] init]; 
[self.navigationController pushViewController:viewer animated:NO]; 
}