Вызов presentViewController:animated:completion:
не анимируется в iOS7. Представление просто мгновенно появляется. Анимация работает корректно в iOS8. Настоящий метод вызывается в трех разных местах моего приложения, и все они отображают это поведение. Это происходит как на устройстве, так и на симуляторе.
Последующий вызов dismissViewControllerAnimated:completion:
правильно анимируется во всех версиях iOS.
Структура кода
Контроллер представления, вызывающий настоящий метод, является корневым контроллером представления UINavigationController
, а этот контроллер навигации является одним из viewControllers
в UITabBarController
.
Каждый вызов прост и запускается нажатием кнопки. Вот один из случаев:
GenreViewController *controller = [[GenreViewController alloc] init];
[self presentViewController:controller animated:YES completion:nil];
Попытки исправления
- Явная отправка в основной поток
- Звонок
[UIView setAnimationsEnabled:YES]
перед презентацией - Добавление задержки для отображения контроллера (просто посмотреть, что произойдет)
В каждом случае поведение не менялось.
Будем очень признательны за любую помощь!
ОБНОВЛЕНИЕ - ИСПРАВЛЕНИЕ
Оказывается, у UITabBarController
свойство modalPresentationStyle
было установлено на UIModalPresentationCurrentContext
. Это не будет анимироваться в iOS7, и вместо этого вы должны использовать стиль представления UIModalPresentationFullScreen
.