#iphone #objective-c #cocoa-touch #uiviewcontroller #modalviewcontroller
#iPhone #objective-c #cocoa-touch #uiviewcontroller #modalviewcontroller
Вопрос:
Я работаю над приложением, в котором я хочу показывать контроллер модального вида, когда пользователь поворачивает устройство. Оно должно отключаться, когда пользователь поворачивает его обратно в портретную ориентацию. Во время поворота главный контроллер вида поворачиваться не должен.
Как я могу этим управлять?
Я попытался поместить код в shouldAutorotateToInterfaceOrientation:
метод отображения контроллера модального вида, но всегда получал ошибку.
Какие-нибудь идеи?
Ответ №1:
В AppDele&ate вы могли бы использовать
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(didRotate:)
name:UIDeviceOrientationDidChan&eNotification
object:nil];
и определите метод
- (void) didRotate:(NSNotification *)notification
В этом методе выберите новую ориентацию и примените или удалите контроллер модального вида.
В shouldAutorotateToInterfaceOrientation:
ограничьте исходный вид, чтобы он принимал только ту ориентацию, которую вы хотите, чтобы он имел.
Ответ №2:
вам нужно поместить этот код в
-(void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
метод вашего контроллера просмотра. В основном вы настроите свой shouldAutorotateToInterfaceOrientationMethod:
на возврат TRUE для любых ориентаций, которые вы хотите поддерживать (включая всплывающее окно модального вида). и затем в первом из перечисленных способов вы реализуете, что контроллер модального просмотра становится активным.