Как проверить альбомный и портретный режим на appdelegate? - PullRequest
2 голосов
/ 05 сентября 2011

я хочу запустить приложение в альбомной и портретной ориентации,

Как проверить альбомный и портретный режим в Appdelegate?

Я пытаюсь позвонить

- (BOOL) isPad{ 
#ifdef UI_USER_INTERFACE_IDIOM
    return (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad);
#else
    return NO;
#endif
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    if ([self isPad]) {
        NSLog(@"is pad method call");
        return YES;
    }
    else 
    {
        return UIInterfaceOrientationIsPortrait(interfaceOrientation);
    }

}



- (BOOL)isPadPortrait
{

    return (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad
            && (self.interfaceOrientation == UIInterfaceOrientationPortrait
                || self.interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown));
}


- (BOOL)isPadLandscape
{

    return (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad
            && (self.interfaceOrientation == UIInterfaceOrientationLandscapeRight
                || self.interfaceOrientation == UIInterfaceOrientationLandscapeLeft));

}

но выдает ошибку Ориентация интерфейса свойства не найдена для объекта типа appdelegate.

Как я могу это сделать?

Ответы [ 4 ]

7 голосов
/ 05 сентября 2011

Вы должны проверить текущую ориентацию вашего iPad, используя.Я бы порекомендовал вам проверять эти условия при каждом просмотре и действовать в соответствии с текущей ориентацией:

if([UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationLandscapeLeft)
{
      //Do what you want in Landscape Left
}
else if([UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationLandscapeRight)
{
      //Do what you want in Landscape Right
}
else if([UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationPortrait)
{
     //Do what you want in Portrait
}
else if([UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationPortraitUpsideDown)
{
      //Do what you want in Portrait Upside Down
}

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

Не стесняйтесь обращаться ко мне, если вам нужна помощь.

2 голосов
/ 24 декабря 2014
-(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
  {
    if ([[UIDevice currentDevice] orientation] == UIDeviceOrientationLandscapeLeft || [[UIDevice currentDevice] orientation ]== UIDeviceOrientationLandscapeRight)
     {
       NSLog(@"Lanscapse");
     }
    if([[UIDevice currentDevice] orientation] == UIDeviceOrientationPortrait || [[UIDevice currentDevice] orientation] == UIDeviceOrientationPortraitUpsideDown )
     {
       NSLog(@"UIDeviceOrientationPortrait");
     }
  }
2 голосов
/ 05 сентября 2011
- (void)applicationDidFinishLaunching:(UIApplication *)application {


    UIDeviceOrientation   orientation = [UIDevice currentDevice].orientation;

    NSString   *nibName = UIDeviceOrientationIsLandscape(orientation) ? @"Landscape" : @"Portrait";


    NSLog(@"orientation is %@",nibName);
}
1 голос
/ 05 сентября 2011

Ориентация делегата - это ориентация, которую мы указываем в листе, если в листе не указана ориентация, для нее будет выбран портретный режим. Но в делегате у вас есть только ключевое окно, которое не поддерживает ориентацию необходимо добавить viewcontroller или любой навигационный контроллер с видом, тогда вы можете вызвать эти функции, и они дадут вам правильную ориентацию для устройства.

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