0

Я обновляю 5-летнее приложение (изначально написанное для iOS 3!). Я сделал приличные успехи в использовании автозапуска и обращении к предупреждениям об отказе. Но старый метод, используемый для представления другого контроллера вида при повороте устройства, больше не работает надежно.Представленный UIViewController отказывается планировать с ориентацией на пейзаж

- (void)orientationChanged:(NSNotification *)notification { 
      UIDeviceOrientation deviceOrientation = [UIDevice currentDevice].orientation; 
      if (deviceOrientation == UIInterfaceOrientationLandscapeRight && !showingOtherVC) { 
       // switch to other VC 
       othervc.modalPresentationStyle = UIModalPresentationOverFullScreen; 
       [self presentViewController:othervc animated:YES completion:nil]; 
       [self resignFirstResponder]; 
      } 

Другой контроллер представления появится, но это выкладывается в сторону, для альбомной ориентации экрана, а не ландшафтной, даже если устройство находится в альбомной ориентации.

Как я могу обновить это достаточно простым способом (т. Е. Не переписывать в Swift, а не перестраивать приложение с помощью раскадровки), что Xcode, похоже, не облегчает с помощью копирования/вставки)? И, в интересах других, которые могут произойти по этому вопросу, какой был бы более правильный способ достичь этого результата (новый VC по изменению ориентации), если бы я писал это с нуля?

спасибо.

ответ

0

Это была действительно глупая ошибка, но в случае, если кто-то другой это делает и заканчивается здесь, это была проблема.

Вместо правильного возвращение постоянной маски:

-(UIInterfaceOrientationMask)supportedInterfaceOrientations { 
    return (UIInterfaceOrientationMaskLandscapeRight); 
} 

Я возвращавшийся этот другой постоянного, что автозаполнение дало мне:

-(UIInterfaceOrientationMask)supportedInterfaceOrientations { 
    return (UIInterfaceOrientationLandscapeRight); 
} 
Смежные вопросы