iphone - вопрос поворота TabBarController - PullRequest
1 голос
/ 21 августа 2010

Мое приложение имеет 4 вкладки. Все контроллеры представления поддерживают вращение, и действительно вращаются, когда я поворачиваю устройство. Для одного из контроллеров представления мне нужно переместить некоторые из подпредставлений при вращении. Я делаю это в willRotateToInterfaceOrientation этого контроллера представления, и он отлично работает.

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

Вопрос: как заставить все контроллеры представления (управляемые TabBarController) вращаться?

Ответы [ 3 ]

0 голосов
/ 21 августа 2010

Просматривая документы iOS 3.2, чтобы убедиться, что это работает, в UITabBarController есть свойство viewControllers.Попробуйте что-то вроде этого:

for (UIViewController * viewController in tabBarController) {
    // Do stuff here with each 'viewController'.
}

Я рекомендую вам что-то сделать с помощью метода UIViewController -shouldAutorotateToInterfaceOrientation:, но у вас может быть другой способ, которым вы планируете добиться вращения.

0 голосов
/ 31 августа 2010

Вы также должны проверить ориентацию интерфейса в методе viewWillAppear контроллера, чьи рамки подпредставлений вы меняете. Потому что, когда вы переходите на новую вкладку и поворачиваете устройство, а теперь, когда вы нажимаете другую вкладку, метод viewWillAppear будет вызываться и там вы можете изменить кадры соответственно. Я также столкнулся с той же проблемой, с которой я разобрался, используя этот подход

0 голосов
/ 21 августа 2010

К сожалению, это ошибка в iOS 3.x.Он отлично работает в iOS 4.x.Я видел приложения, которые вручную отслеживают изменения ориентации, а затем выполняют поворот вручную для неактивных контроллеров представления.Отстой.

...