мое приложение до iOS 7 работает правильно. Я пробовал это сегодня с Xcode 6, и когда я запускаю его, у меня неприятный сюрприз: (:
Вы можете видеть, что Xcode теперь нарисовал мой viewController, как если бы он был в портретном режиме, но, как вы можете видеть, он находится в ландшафтном режиме.
Знаете ли вы, что изменилось в iOS 8?:/ Я использовал следующие методы ориентации:
- (NSUInteger) supportedInterfaceOrientations
- (BOOL) shouldAutorotate
- (BOOL) shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation) interfaceOrientation
ИЗМЕНИТЬ:
Я просто открываю этот метод:
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
return UIInterfaceOrientationMaskLandscape;
}
И теперь мои первые контроллеры view работают правильно:). проблема в том, когда я показываю модальный (который меняет набор методов в UIInterfaceOrientationMaskAll) переделывает уродливый эффект скриншота. Именно поэтому я меняю свои методы в этом режиме:
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
if(self.restrictRotation)
{
return UIInterfaceOrientationMaskLandscape;
}
else
{
return UIInterfaceOrientationMaskAll;
}
}
// THIS IS A DELEGATE OF MODAL VIEW CONTROLLER
- (void)updateInterfaceAfterDocumentPreviewViewController
{
NSLog(@"updateInterfaceAfterDocumentPreviewViewController");
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeLeft];
AppDelegate* appDelegate = (AppDelegate*)[UIApplication sharedApplication].delegate;
appDelegate.restrictRotation = YES;
}