Проблема. Я получаю очень странную ошибку в моем приложении.У меня есть UITabBarController с несколькими контроллерами представления для вкладок.В контроллерах вида я реализовал автоматическое вращение через shouldAutorotateToInterfaceOrientation:
, и оно работало нормально, пока я не сделал следующее изменение.
Я реализовал жесты смахивания в контроллерах вида для переключения между вкладками.Это выполняется с помощью следующего кода.
- (void)onSwipeLeft {
int _count = [[self.tabBarController.tabBar items] count];
int i = self.view.tag - 1;
if (i < _count - 1) {
self.tabBarController.selectedIndex = (i + 1) % _count;
}
}
И аналогично для onSwipeRight
.
Теперь автоповорот работает только , пока вы не проведете пальцем влево или вправо .После этого shouldAutorotateToInterfaceOrientation:
никогда не вызывается вообще.
См. Также.
В этот поток идентичныйпроблема описана.Я также иногда вижу сообщение в журнале, подобное следующему: -[UIWindow beginDisablingInterfaceAutorotation] overflow on <UIWindow: 0x1410e0; frame = (0 0; 320 480); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x141190>>. Ignoring.
Я не могу найти никакой другой информации об этом.
Этот вопрос , кажется, описываетта же проблема.
Этот вопрос , похоже, описывает аналогичную проблему, но с popViewController:
.Обратите внимание, что ошибка существует с SDK 3.2.
Что делать? Похоже, ошибка в SDK, которая все еще присутствует в 4.1.Кто-нибудь нашел обходной путь?Это похоже на общий сценарий.