Как сделать приложение полностью работать правильно для AutoRotation в iOS 6?
-
11-12-2019 - |
Вопрос
в iOS6, генеракодицетагкод устарел.Я пытался использовать shouldAutorotateToInterfaceOrientation
и supportedInterfaceOrientations
, чтобы сделать приложение, работающее правильно для автозависимости, но не удалось.
Этот контроль контроллера я не хочу вращаться, но это не работает.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
-(BOOL)shouldAutorotate
{
return NO;
}
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
.
Есть идеи? Спасибо за любую помощь заранее!
Решение
понять это.
.
- (BOOL)shouldAutorotate
{
return self.topViewController.shouldAutorotate;
}
- (NSUInteger)supportedInterfaceOrientations
{
return self.topViewController.supportedInterfaceOrientations;
}
.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
-(BOOL)shouldAutorotate
{
return NO;
}
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskAllButUpsideDown;
}
-(BOOL)shouldAutorotate
{
return YES;
}
BTW, в соответствии с вашими потребностями, другой связанный метод:
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
return UIInterfaceOrientationMaskPortrait;
}
. Другие советы
Если вы используете контроллер вкладок, вместо контроллера навигации в качестве корневого контроллера, вам понадобится аналогично подкласс UITABBACCONTROLLER.
Также синтаксис будет другим.Я использовал следующее с успехом.Затем я использовал приведенные выше примеры с успехом на контроллерах просмотра, которые я хотел переопределить.В моем случае я хотел, чтобы главный экран не вращался, но у меня был экран FAQ с фильмами, которые я естественным образом хотел включить вид на ландшафту.Работал отлично!Просто обратите внимание на изменение синтаксиса в Self.ModalViewController (вы получите предупреждение компилятора, если вы пытаетесь использовать синтаксис для контроллера навигации.) Надеюсь, это поможет!
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (BOOL)shouldAutorotate
{
return self.modalViewController.shouldAutorotate;
}
- (NSUInteger)supportedInterfaceOrientations
{
return self.modalViewController.supportedInterfaceOrientations;
}
.