Ошибка ориентации устройства iPhone - PullRequest
0 голосов
/ 25 октября 2010

Я застрял несколько дней со странной проблемой. Я искал решение в Google, и я не вижу никого с такой же ошибкой.

Мое приложение не хочет вращаться. Я использую несколько viewController, реализовал метод shouldAutoRotateToOrientation, но контроллеры представления не хотят вращаться.

Я сделал отладку, но метод

- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
    return toInterfaceOrientation == UIInterfaceOrientationPortrait;
}

вызывается только один раз при загрузке представления с помощью UiDeviceOrientationPortrait. Когда я меняю ориентацию на iphone, этот метод не вызывается ни на одном контроллере.

В info.plist я поместил в «Поддерживаемую ориентацию интерфейса» каждую ориентацию, но она ничего не изменила.

Я использую классы Three20 для некоторых viewControllers, но не для TTNavigator. Я также использую виджет ZXIng. Мое приложение представляет собой вкладку BarApplication. Я знаю, что tabBar может вращаться, только если все viewContrllers вкладки также могут вращаться. Но представления, которые я хочу иметь возможность вращаться, находятся в модальном представлении или MPMoviePlayer. Даже видео застряло в «Портрете».

Спасибо за вашу помощь.

Эд

Ответы [ 2 ]

1 голос
/ 25 октября 2010

Ваша shouldAutorotateToInterfaceOrientation только возвращает YES для UIInterfaceOrientationPortrait.

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

Попробуйте это:

- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
    return YES;
}
0 голосов
/ 25 октября 2010

Моя проблема заключалась в том, что в aaplicationDidFinishLauching я делал:

[window addSubview:_zxingController.view];
[window addSubview:myTabBarController.view];

Таким образом, он взял представление zxing как базовое представление (то есть представление, которое не может вращаться).Вот почему он не пытался повернуть MyTabBarController, вызвав shouldAutorotateToInterfaceOrientation.

Итак, я сделал:

[window addSubview:myTabBarController.view];
[window insertSubView:_zxingController.view atIndex:0];

проблема решена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...