У меня есть контроллер панели вкладок с четырьмя разными представлениями. Недавно я хотел включить вращение только для одного из моих представлений. Я где-то читал, что для контроллеров вкладок все подпредставления должны возвращать 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 VC для управления вкладками, а это не то, что вы хотели. Что вы также можете сделать, так это добавить дополнительное логическое значение в ваш mainVC, которое по умолчанию НЕТ. Затем, когда вы открываете этот конкретный вид, который поддерживает все ориентации, вы просто ставите это логическое значение на YES и выполняете следующий код:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
if (myBoolThatAllowsAllOrientations)
{
return YES;
}
if (interfaceOrientation == UIDeviceOrientationPortrait || interfaceOrientation == UIDeviceOrientationPortraitUpsideDown)
{
return YES;
}
return NO;
}
person
Totumus Maximus
schedule
25.10.2011
Большое спасибо Totumus Maximus, гениально!
- person Teddy13; 25.10.2011