Ориентация интерфейса приложения iPad изменилась после запуска Aplicaiton

StackOverflow https://stackoverflow.com/questions/19852408

Вопрос

Я работаю над приложением. Ориентация приложения является ландшафтом, но после приложения запустить ориентацию интерфейса приложения изменить интерфейс и вращать. отображение брызгового экрана правильно (ландшафт). Я использую iOS7 Приложение было кодом для iOS5, я думаю, что есть какая -то устаревшая проблема с API, например, BodAutorotateTeTeCainTairentation Bot Call, потому что это больше не доступно в последнем iOS

enter image description here

Это было полезно?

Решение

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

 @implementation UINavigationController (Rotation_IOS6)

-(BOOL)shouldAutorotate
{
   return [[self.viewControllers lastObject] shouldAutorotate];
 } 

-(NSUInteger)supportedInterfaceOrientations
{
    return [[self.viewControllers lastObject] supportedInterfaceOrientations];
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    return [[self.viewControllers lastObject]     preferredInterfaceOrientationForPresentation];
}

@end

Как указывают некоторые из комментариев, это быстрое решение проблемы. Лучшим решением является подкласс UinavigationController и поместите эти методы. Подкласс также помогает поддерживать 6 и 7.

Другие советы

enter image description here

Вы должны установить Orintatoin в Build Seeting See Image.

Это решит вашу проблему.

Попробуй это:

- (BOOL)shouldAutorotate
{
    return YES;
}

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight;
}

РЕДАКТИРОВАТЬ :

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

Я нахожу решение, что я делаю. Шаг первый переопределить мой UinavigationController, создав категорию

Шаг второй заменить [self.window addsubview: [vaightontroller view]]; //СТАРЫЙ

С [self.window setRootViewController: NavigationController]; //НОВЫЙ

Используйте это в своем appdelegate.m

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
    NSLog(@"Interface orientations");
    if([[UIDevice currentDevice]userInterfaceIdiom]==UIUserInterfaceIdiomPad ){

        return UIInterfaceOrientationMaskLandScape;
    }
    else{
        return UIInterfaceOrientationMaskPortrait;
    }
}

Это помогло мне ..

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top