Установить ориентацию на портрет на 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:
методы.