UIView поворот проблемы - PullRequest
       10

UIView поворот проблемы

0 голосов
/ 22 июня 2011

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

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return ((interfaceOrientation == UIInterfaceOrientationLandscapeRight)||
        (interfaceOrientation == UIInterfaceOrientationLandscapeLeft));
    //return YES;
} 

и установите альбомную ориентацию в обоих файлах Xib.

в *** Delegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions    
{
   .......
   viewController.view.hidden=TRUE;

   [self.window addSubview:viewController.view];

   [self.window addSubview:menuController.view];

   .....
}

если я добавлю viewController.view, сначала viewController.view будет альбомной позицией, и он может повернуться в landscapeLeft или landscapeRight. Но menuController.view по-прежнему находится в портретном положении и вид не может вращаться вообще.

если я сначала добавлю menuController.view, ситуация обратная.

Почему это случилось? Как это исправить? Мое приложение почти готово. Есть ли простой способ решить эту проблему, не внося больших изменений в мой код.

Любое предложение приветствуется. Большое спасибо!

1 Ответ

0 голосов
/ 22 июня 2011

Какой контроллер представления определяется как rootViewController для Window? Когда устройство вращается, AFAIK, представление, которым манипулируют, является тем в rootViewController.view.

Вы можете проверить это, поместив NSLog в каждый контроллер вида shouldAutorotateToInterfaceOrientation. Если я прав, вы увидите только один вызов этой функции.

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

Надеюсь, это поможет!

...