Разрешить вращение только одного вида из нескольких в настройках панели вкладок
У меня есть контроллер панели вкладок с четырьмя различными представлениями. Недавно я хотел включить вращение только для одного из моих взглядов. Я где-то читал, что для контроллеров вкладок все подпредставления необходимо вернуть YES
в методе shouldAutoRotateToInterfaceOrientation:
, Я сделал это, и все работает, однако я хочу, чтобы только один из видов перешел в ландшафтный режим, а не все. Кажется, я могу получить его только в ситуации "все или ничего", что означает, что он либо вращается, либо не вращается.
1 ответ
Добавьте это к тем VC, которые поддерживают только портретный режим:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
if (interfaceOrientation == UIDeviceOrientationPortrait || interfaceOrientation == UIDeviceOrientationPortraitUpsideDown)
{
return YES;
}
return NO;
}
Добавьте это в VC, который также поддерживает ландшафт:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return YES;
}
Выше будет означать, что вам нужно 4 ВК для управления вкладками, а это не то, что вы хотели. То, что вы можете сделать, это сделать дополнительный логический параметр в вашем mainVC, который по умолчанию НЕТ. Затем, когда вы открываете это конкретное представление, которое поддерживает все ориентации, вы просто помещаете это логическое значение в YES и делаете следующий код:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
if (myBoolThatAllowsAllOrientations)
{
return YES;
}
if (interfaceOrientation == UIDeviceOrientationPortrait || interfaceOrientation == UIDeviceOrientationPortraitUpsideDown)
{
return YES;
}
return NO;
}