Как спровоцировать всплывающее окно модального просмотра, повернув устройство в альбомную ориентацию?

Я работаю над приложением, в котором хочу показать контроллер модального представления, когда пользователь поворачивает устройство. Он должен закрываться, когда пользователь поворачивает его обратно в портретную ориентацию. Во время поворота контроллер основного вида не должен вращаться.

Как я могу это сделать?

Я пытался поместить код в метод shouldAutorotateToInterfaceOrientation: для отображения контроллера модального представления, но всегда получал ошибку.

Некоторые идеи?


person ffraenz    schedule 31.01.2011    source источник


Ответы (2)


В appDelegate вы можете использовать

[[NSNotificationCenter defaultCenter] addObserver:self
                                        selector:@selector(didRotate:)
                                             name:UIDeviceOrientationDidChangeNotification
                                           object:nil];

и определить метод

- (void) didRotate:(NSNotification *)notification

В этом методе выберите новую ориентацию и примените или удалите контроллер модального представления.

В shouldAutorotateToInterfaceOrientation: ограничьте исходный вид, чтобы принять только одну ориентацию, которую вы хотите.

person Kerni    schedule 31.01.2011

вам нужно поместить этот код в

-(void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration

метод вашего контроллера представления. По сути, вы установите shouldAutorotateToInterfaceOrientationMethod: для возврата TRUE для любых ориентаций, которые вы хотите поддерживать (включая всплывающее окно модального вида). а затем в первом указанном методе вы реализуете модальный контроллер представления, который становится активным.

person Jesse Naugher    schedule 31.01.2011