Автоориентация - PullRequest
       20

Автоориентация

0 голосов
/ 15 сентября 2011

В моем проекте мне необходимо реализовать функцию ориентации iPhone. Для этого я создал два xib-файла и один UIViewController файл контроллера, один для альбомной ориентации и другой для портретной. Я взял один UIViewController, потому что содержимое XIB-файлов одинаково.

Теперь я хочу загрузить соответствующий файл xib в зависимости от поворота, и содержимое должно оставаться заполненным в TextField при загрузке конкретного файла. Как мне это реализовать?

КОД:

if( orientation == UIDeviceOrientationLandscapeLeft || orientation == UIDeviceOrientationLandscapeRight) 
{
   NSArray *nibArray = [[NSBundle mainBundle] loadNibNamed:@"landscapeView" owner:self options:nil]; UIView *viewItem = (UIView *)[nibArray objectAtIndex:0]; self.view = viewItem;
}
else if(orientation == UIDeviceOrientationPortrait || orientation == UIDeviceOrientationPortraitUpsideDown) 
{
   //same above lines only different nib name 
}

Ответы [ 2 ]

0 голосов
/ 15 сентября 2011

это очень плохой подход, пожалуйста, установите xib по коду и используйте

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation

выше единицы для вращения и ниже единицы для установки xib.

-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration

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

0 голосов
/ 15 сентября 2011

Вы можете проверить init метод UIViewController ориентации устройства, используя следующий код

if (UIDeviceOrientationIsLandscape([[UIDevice currentDevice] orientation])
{
     // load view for landscape mode
}else
{
     // load view for portrait mode
}

И выберите файл .xib, соответствующий текущей ориентации.

Надеюсь, это сработает.

...