【发布时间】:2014-11-09 07:17:21
【问题描述】:
我的应用到 iOS 7 都可以正常工作。我今天用 Xcode 6 尝试了它,当我运行它时,我有一个令人讨厌的惊喜:(:
您可以看到 Xcode 现在绘制我的 viewController 就好像它处于纵向模式,但您可以看到它处于横向模式。
你知道 iOS 8 有什么变化吗? :/ 我使用了以下定位方法:
- (NSUInteger)支持的接口方向
- (BOOL)应该自动旋转
- (BOOL) 应该自动旋转到接口方向:(UIInterfaceOrientation)接口方向
编辑:
我才发现这个方法:
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
return UIInterfaceOrientationMaskLandscape;
}
现在我的第一个视图控制器可以正常工作:)。问题是当我显示一个模式(改变 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;
}
【问题讨论】:
-
在真机上试用。同样的问题?
-
不幸的是:(
-
据我所知,iOS 8 不再使用自动旋转和方向 API。每个方向变化只是一个动画边界变化。
-
感谢您对 Legoless 的评论,请看我对 mc01 的回答。
-
我在许多第三方应用程序(例如 Reeder)中看到了同样的情况。
标签: ios ipad cocoa-touch uiinterfaceorientation