проблема представления и отклонения модального контроллера представления - PullRequest
0 голосов
/ 26 апреля 2011

У меня есть приложение OpenGL-ES с панелью инструментов. Когда я касаюсь значка конфигурации на панели инструментов, мое приложение отображает представление с кучей параметров конфигурации, используя следующий код:

optionsControllerOutlet.modalPresentationStyle = UIModalPresentationFullScreen;
optionsControllerOutlet.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self.glView.superview addSubview:optionsControllerOutlet.view];
[self presentModalViewController:optionsControllerOutlet animated:YES];

и когда я пытаюсь закрыть представление, выполняется следующий код:

[self dismissModalViewControllerAnimated:YES];

Вид отображается нормально, но анимация отсутствует при переходе. Когда я пытаюсь отклонить мнение, ничего не происходит. Любая идея, почему нет анимации, и это не уволить? Я только начинаю оборачиваться вокруг контроллеров представления и как работать с ними. Я могу заставить его работать, используя следующую строку, чтобы закрыть представление, но я бы хотел, чтобы это работало правильно:

[optionsControllerOutlet.view removeFromSuperview];

Ответы [ 2 ]

1 голос
/ 23 июля 2012

Вам не нужно

[self.glView.superview addSubview:optionsControllerOutlet.view]

Также вам не нужен метод removeSubview. Модальное представление должно заботиться о его представлении. Так что ваша ошибка может быть где-то еще.

Относительно увольнения, куда вы звоните:

[self dismissModalViewControllerAnimated:YES];

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

Или, если вы хотите вызвать его из самого модального представления, можно выполнить:

[self.presentingViewController dismissModalViewControllerAnimated: YES];

0 голосов
/ 26 апреля 2011

Избавьтесь от [self.glView.superview addSubview: optionsControllerOutlet.view];

...