0

Я использую IIViewDeckController и сталкивается с очень странной проблемой следующим образом ?:iiview контроллер палубы меняется кадр без изменения ориентации интерфейса на представление модального вида

Моих ViewController (который является IIViewDeckController) находится в ландшафтном режиме, а затем я представить новый контроллер представлений, модно поверх него. Теперь модальный контроллер просмотра не поддерживает ландшафтный режим и, таким образом, представлен только в портретном режиме.
На данный момент все прошло хорошо.

Но как только я попытаюсь уволить этого модально представленного контроллера, IIViewDeckController's Рамка представления будет (320,568) (я думаю, что этот IIViewDeckController повернулся в портретный режим, но я не уверен в этом). Поэтому я проверил self.interfaceOrientation, который показал «4» (то есть UIInterfaceOrientationLandscapeLeft), который должен быть фактическим.

Но эти две вещи меня смущают, так как рамка указывает на портретный режим и свойство показывает что-то другое. Теперь из-за этого изменения кадра без изменения interfaceOrientation результатом является неправильный расчет кадров объектов в представлении.

ответ

0

Я столкнулся с той же проблемой, я решил ее, классифицируя IIViewDeckController внутри класса AppDelegate.

Ниже приводится один метод, который должен был быть классифицированы: -

@interface IIViewDeckController (categoryForOrientation) 
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation; 
@end 

@implementation IIViewDeckController (categoryForOrientation) 

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation{ 
    return [self interfaceOrientation]; 
} 
Смежные вопросы