#ios #iphone #uiinterfaceorientation
#iOS #iPhone #ориентация uiinterfaceorientation
Вопрос:
Я знаю, может быть, это дублирующий вопрос, но я перепробовал много ответов, описанных здесь, и я не могу заставить его работать часами.
Я работаю над приложением для IOS 6 и IOS 7, просто мне нужно перейти от моего первого ViewController «A», который находится в альбомной ориентации, ко второму ViewController «B», который находится в портретной ориентации.
Я настроил проект так, чтобы включить всю желаемую ориентацию, установил «соответствующий» код, но при этом второй вид отображался вертикально в альбомной ориентации..
вот код, который я установил для первого контроллера :
- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}
-(BOOL)shouldAutorotate
{
return YES;
}
-(NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskLandscape ;
}
Пожалуйста, помогите.
Комментарии:
1. ваш код правильный, и он будет работать, просто поместите все эти методы в каждый контроллер представления в соответствии с желаемыми результатами.
2. когда я помещаю тот же код на свой второй контроллер с портретной ориентацией, я получаю эту ошибку: «Поддерживаемые ориентации не имеют общей ориентации с приложением, и shouldAutorotate возвращает YES», поэтому я изменил его на NO, чтобы избавиться от этой ошибки, и я получаю то же самое, что и на изображении выше.
Ответ №1:
Если вы используете методы UINavigationViewController( pushViewController:animated:
и popViewControllerAnimated:), представления унаследуют ориентацию предыдущего представления.
С другой стороны, если вы используете presentModalViewController:animated:
dismissModalViewControllerAnimated:
методы and , все работает отлично.
Также вот пример проекта, который также меняет ориентацию по вашему желанию
Комментарии:
1. Спасибо, Ахмед, я просто добавляю свои представления с помощью [firstVieController.view addSubview:SecondViewController.view]; разве нет способа сделать это правильно?
2. Да, таким образом вы также можете получить желаемую ориентацию