我在iOS8中让我的应用在纵向和横向之间旋转时遇到问题。它在iOS7中运行良好。在我的主视图控制器中,我有以下内容。
- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation {
return YES; // for iOS7 compatibility
}
- (BOOL)shouldAutorotate {
return YES;
}
- (NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskAll;
}
我可以确认(通过调试)在iOS8启动时调用后两个,但不在屏幕旋转上调用。
我正在使用自动布局,并且在IB中没有错误和警告。 (在启动时调试器中也没有)。
Info.plist文件具有“UISupportedInterfaceOrientations”和“UISupportedInterfaceOrientations~ipad”的所有4个方向。
这有点不寻常,因为在模拟器(8.1)中,无论方向如何,应用程序始终以纵向模式启动。但是在设备(8.0)上,应用程序始终以当前方向启动。但是,两者都不允许在应用内轮换。
我已经浏览了互联网和Apple的文档。我们将非常感谢任何正确方向的想法或指示。
答案 0 :(得分:0)
1)首先点击你的项目
2)然后单击常规选项卡。在部署信息下,您将找到设备方向
3)检查所有四个选项。
可能这会对你有所帮助。 如果不能正常工作,请通知我 感谢
答案 1 :(得分:0)
在你的appdelegate中使用它。
-(NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
return UIInterfaceOrientationMaskAll;
else /* iphone */
return UIInterfaceOrientationMaskAllButUpsideDown;
}
答案 2 :(得分:0)
我终于发现了这个问题。我一直在应用程序委托的'initialize'方法中调用'beginGeneratingDeviceOrientationNotifications':
+ (void)initialize {
// ...
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
}
自iOS早期以来这种情况一直很好,并且这个电话似乎没有被弃用,但由于某些原因它在iOS8中不再适用 - 至少在早期阶段不行。轻松解决。感谢所有考虑过这个问题的人。