Как принудительно установить портретную ориентацию в iOS 7
, если мое приложение изначально поддерживается для обеих ориентаций?
Как заставить портретную ориентацию?
Ответы (3)
Для всего приложения откройте файл проекта, перейдите на вкладку Общие, измените настройки:
Или непосредственно в файле Info.plist:
Если вы хотите это только на определенном контроллере представления, переопределите supportedInterfaceOrientations
:
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
Подробнее о втором методе можно прочитать на официальном сайте . Документация по UIViewController. Возможно, вы найдете более подходящий способ для вашей конкретной проблемы.
Используйте следующий подход: в вашем приложении делегируйте .h
@interface PlayWithWSWithLibAppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate> {
BOOL flagOrientationAll;
}
@property (assign) BOOL flagOrientationAll;
Добавьте следующий метод в файл делегата приложения .m.
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{
//NSLog(@"PlayWithWSWithLibAppDelegate -- supportedInterfaceOrientationsForWindow");
if(flagOrientationAll == YES){
return UIInterfaceOrientationMaskPortrait;
} else {
return UIInterfaceOrientationMaskAll;
}
}
Реализуйте в своем представлении следующий способ, который вы хотите повернуть как в портретной, так и в альбомной ориентации как для устройства iPhone.
-(void)viewWillAppear:(BOOL)animated
{
self.tabBarController.delegate = self;
PlayWithWSWithLibAppDelegate *delegate = (PlayWithWSWithLibAppDelegate *) [[UIApplication sharedApplication] delegate];
delegate.flagOrientationAll = YES;
}
}
-(void)viewWillDisappear:(BOOL)animated
{
//NSLog(@"viewWillDisappear -- Start");
PlayWithWSWithLibAppDelegate *delegate = (PlayWithWSWithLibAppDelegate *)[[UIApplication sharedApplication] delegate];
delegate.flagOrientationAll = NO;
}
Вот моя тема, похожая на вашу проблему: Ориентация интерфейса iOS 7