Определить ориентацию при загрузке вида

Я разрабатываю универсальное приложение. Когда у меня устройство ipad, у меня есть 2 дизайна: книжная и альбомная.

Я использую этот метод: -(void)orientationDidChanged:(NSNotification *)notification

Он отлично работает, когда я повернул свое устройство. Но у меня возникла проблема, когда сначала загрузили вид и я не повернул устройство. По этой причине я поместил этот код в viewdidload:

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone){ //
     something.
}
else if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){
    NSLog(@"IPAD ** ");
    if (UIDeviceOrientationIsPortrait([UIDevice currentDevice].orientation)){
        NSLog(@" vertical ** ");
    }
    if (UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation)){
         NSLog(@"Horizontal ** ");
    }
}

У меня проблемы такие: иногда это работает, иногда нет:(. Этот метод: directionDidChanged, когда начать работать - только если я поворачиваю свое устройство или сразу с viewDidLoad, необходимо еще раз спросить ориентацию, когда у меня есть этот метод? Спасибо за несколько советов.

У меня нет проблем, когда я поворачиваю свое устройство, оно работает отлично: D.. Моя проблема, когда я недавно запустил приложение, и я не включил устройство

1 ответ

Вы можете использовать это:

UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation;
if(orientation == 0) //Default orientation 
    //UI is in Default orientation (Portrait)
else if(orientation == UIInterfaceOrientationPortrait)
    //UI is in Portrait orientation
else if(orientation == UIInterfaceOrientationLandscapeLeft)
    //UI is in Landscape-left orientation
else if(orientation == UIInterfaceOrientationLandscapeRight)
    //UI is in Landscape-right orientation
Другие вопросы по тегам