1

Я только что позволяет устройства портретной ориентации для UIViewControllers просматриваемой на айфонов через следующий код:Пейзаж Segue между двумя Портрет UIViewControllers

- (BOOL)shouldAutorotate 
{ 
    NSString *device = [UIDevice currentDevice].model; 
    return [device rangeOfString:@"iPhone"].location != NSNotFound ? NO : YES; 
} 

Это прекрасно работает - когда я поворачиваю мой iPhone, глядя на ViewController А, вид не вращается. Аналогично, когда я поворачиваю свой iPhone, глядя на ViewController B, представление не вращается. Однако, когда я поворачиваю свой iPhone, смотря на ViewController A, нажмите кнопку, которая представляет ViewController B по модулю, анимация show segue (Flip Horizontal) является пейзажной, а ViewController B отображается в альбомной ориентации.

Как я могу заставить segue быть портретом, а также не поворачивать ViewController B?

+0

Я не думаю, что Flip Horizontal segue работает с портретом. Попробуйте использовать другой segue. –

+0

Нет, он работает с портретом. если я не поворачиваю устройство, он выглядит идеально. Также, если я не разрешаю ландшафтному режиму через цель - он всегда выглядит отлично, но я хочу разрешить пейзаж на iPad. –

+0

Вы можете вручную установить ориентацию, когда появится секция ViewController B. –

ответ

0

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

Мое предложение состояло в том, чтобы предотвратить другие ориентации, кроме ландшафта (что позволяет LandscapeLeft и LandscapeRight). И я имею в виду, что вы должны переопределить supportedInterfaceOrientations в обоих ViewControllers и сообщить приложению, что он должен разрешать только ориентацию ландшафта вместо значения по умолчанию (что позволяет все, кроме перевернутой ориентации).

Смежные вопросы