Вращение iPad, любой способ загрузить пользовательский вид на основе ориентации?

Я пишу приложение, в котором я хотел бы отображать разные виды в зависимости от ориентации. Например, если устройство загружается в портретной ориентации, pView, если в горизонтальной ориентации, загружается lView. Ниже приведен код, который я пробовал в настоящее время.

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)
interfaceOrientation duration:(NSTimeInterval)duration {
 if (interfaceOrientation == UIInterfaceOrientationPortrait)
{
      self.view = portrait;
}
 else if (interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown){
      self.view = portrait;
 }
 else if (interfaceOrientation == UIInterfaceOrientationLandscapeRight){
      self.view = portrait;
 }
 else if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft){
      self.view = landscape;
 }

}

При этом я создал 2 вида в IB и подключил выходы к правому виду. Я также пробовал это:

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)
interfaceOrientation duration:(NSTimeInterval)duration {
 if (interfaceOrientation == UIInterfaceOrientationPortrait)
{
      self.view = portrait;
}
 else if (interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown){
      self.view = portrait;
 }
 else if (interfaceOrientation == UIInterfaceOrientationLandscapeRight){
      lView *abo = [[lView alloc] initWithNibName:@"lView" bundle:nil];
      [self.navigationController pushViewController:abo animated:NO];
      [abo release];

 }
 else if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft){
      lView *abo = [[lView alloc] initWithNibName:@"lView" bundle:nil];
      [self.navigationController pushViewController:abo animated:NO];
      [abo release];

 }

}

Код непосредственно выше работал для iPod, но не для iPad. Любые идеи?


person Tanner    schedule 26.06.2010    source источник


Ответы (3)


Я нашел следующие 2 примера проектов (Apple) полезными:

http://developer.apple.com/library/ios/#samplecode/AlternateViews/Introduction/Intro.html

http://developer.apple.com/library/ios/#samplecode/WhichWayIsUp/Introduction/Intro.html

Кроме того, помните, что с точки зрения устройства есть также ориентация лицевой стороной вверх и лицевой стороной вниз; это поймало меня.

person petert    schedule 13.09.2010

Я должен задать очевидный вопрос:

Включен ли на вашем iPad переключатель блокировки ориентации экрана?

person Chris Allwein    schedule 27.06.2010
comment
Нет, я пытаюсь загрузить другой вид в зависимости от ориентации. - person Tanner; 27.06.2010

В зависимости от того, что вы пытаетесь сделать, вы можете настроить свой интерфейс в IB для автоматической обработки поворотов. Вы можете изменять размер компонентов, перемещать изображения и метки и тому подобное. Это может сделать то, что вы хотите сделать ...

person gabaum10    schedule 13.09.2010