Получение предупреждений методом, который проверяет ориентацию устройства - PullRequest
0 голосов
/ 07 сентября 2011

Может кто-нибудь сказать мне, что не так с этим кодом? Я пытаюсь определить, в какой ориентации (книжная или альбомная ориентация устройства). Спасибо.

- (void)checkOrientation
{
    UIInterfaceOrientation orientation = [[UIDevice currentDevice] orientation];

    switch (orientation) 
    {
        case UIInterfaceOrientationPortrait:
            self.tableView.backgroundColor = [UIColor whiteColor];
            break;
        case UIInterfaceOrientationPortraitUpsideDown:
            self.tableView.backgroundColor = [UIColor whiteColor];
            break;
        case UIInterfaceOrientationLandscapeLeft:
            self.navigationController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background2.png"]]; 
            break;
        case UIInterfaceOrientationLandscapeRight:
            self.navigationController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background2.png"]]; 
            break;
    }
    [self.tableView reloadData];
}

Внимание * * 1004 Неявное преобразование из типа перечисления 'UIDeviceOrientation' в другой тип перечисления 'UIInterfaceOrientation

Ответы [ 2 ]

5 голосов
/ 07 сентября 2011

Теперь, когда вы опубликовали ошибку, проблема ясна. Эта строка:

[[UIDevice currentDevice] orientation];

возвращает экземпляр UIDeviceOrientation, а не экземпляр UIInterfaceOrientation. Чтобы удалить предупреждение и исправить код, вы можете изменить строку обидчика следующим образом:

UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation];
0 голосов
/ 07 сентября 2011

Если этот код находится в viewController, вы должны использовать self.interfaceOrientation для выполнения работы.

...