Ориентация iPhone upSideDown не работает в iOS 6?

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

У меня проблема в upSideDown Orientation в моем iOS 6, при этом я думаю, что все делаю идеально, но я не знаю, почему у меня не работает. Я делюсь с вами своей проблемой, чтобы получить какие-либо решения.

Что я сделал до сих пор:

a) На вкладке «Сводка проекта xcode» я включил все 4 ориентации.

b) Я добавил фрагмент кода (написанный ниже) во все мои классы контроллеров.

-(BOOL)shouldAutorotate
{
    return YES;
}
-(NSInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskAll;
}

но все равно upSideDown Orientation не работает

Спасибо в ожидании.


person iOmi    schedule 05.12.2012    source источник


Ответы (1)


Я нашел ее решение.

Нам нужно сделать отдельный класс типа UINavigation Controller. В файле .m добавьте следующие методы

// Deprecated in iOS6, still needed for iOS5 support.
// ---

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    //    return (interfaceOrientation == UIInterfaceOrientationPortrait);
    return YES;
}

// iOS6 support
// ---
- (BOOL)shouldAutorotate
{
    return YES;
}

-(NSUInteger)supportedInterfaceOrientations{
    return UIInterfaceOrientationMaskAll;
}

Теперь назначьте этот только что созданный класс вашей Navigation Controller в раскадровке. Также добавьте файл .m этого класса в «Проект -> Настройка сборки -> Источники компиляции». Запустите проект, и он будет поддерживать и выполнять все ориентации, включая upSideDown.

Я надеюсь, что это поможет вам всем.

С уважением

person iOmi    schedule 07.12.2012
comment
Альтернативой является создание категории на UINavigationController, как это сделано здесь: stackoverflow.com/a/16052448/211292 - person ThomasW; 31.07.2013
comment
Мне нужно только для iPhone с iOS 7, чтобы определить PortraitOrientationUpSideDown. - person Beto; 07.01.2014