Установить ориентацию на портрет на iPhone

У меня есть приложение, которое состоит из логина, 3 таблицы, а затем изображение.

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

Есть ли способ сделать это?

3 ответа

Решение

Если предыдущий контроллер представления поддерживает только портрет (см. shouldAutorotateToInterfaceOrientation:) тогда он должен автоматически вращаться.

Если предыдущий контроллер представления поддерживает альбомную ориентацию, но вы хотите, чтобы он повернулся в портретную, если он изначально был в портретной ориентации, вы, вероятно, можете принудительно изменить его, изменив shouldAutorotateToInterfaceOrientation: возвращается при навигации назад. Я не рекомендовал бы это; это несовместимый пользовательский интерфейс (и немного утомительно, чтобы выяснить, что происходит навигация).

Существуют различные способы установки ориентации интерфейса контроллера вида (-[UIDevice setOrientation:] будет пытаться вызвать авторотацию), но тогда вы попадете в область частных API и потенциального отклонения.

Для предыдущего контроллера:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
if (UIInterfaceOrientationIsPortrait(toInterfaceOrientation)) {
    return YES;
}
return NO;}

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

Это может на самом деле не изменить ориентацию, поэтому, если это само по себе не работает, вам, возможно, придется позвонить setStatusBarOrientation:animated: на UIApplication в вашем контроллере представления таблицы viewWillAppear: или же viewDidAppear: методы.

Другие вопросы по тегам