Ios8 当屏幕处于横向模式时,UIAlertview以纵向模式显示

Ios8 当屏幕处于横向模式时,UIAlertview以纵向模式显示,ios8,orientation,alertview,Ios8,Orientation,Alertview,我有一个配置为仅支持纵向模式的应用程序。但我必须在横向模式下在应用程序中显示一个屏幕(比如abcViewController)。按下abcViewController屏幕时,方向从纵向模式更改为横向模式。在abcViewController屏幕状态栏中,所有图像、按钮均以横向模式显示,但UIAlertView以纵向模式显示。 这意味着在abcViewController中,视图上的所有内容都将更改为横向模式,但UIAlertView不会旋转为横向模式,并保持纵向模式。 我希望UIAlertVie

我有一个配置为仅支持纵向模式的应用程序。但我必须在横向模式下在应用程序中显示一个屏幕(比如abcViewController)。按下abcViewController屏幕时,方向从纵向模式更改为横向模式。在abcViewController屏幕状态栏中,所有图像、按钮均以横向模式显示,但UIAlertView以纵向模式显示。 这意味着在abcViewController中,视图上的所有内容都将更改为横向模式,但UIAlertView不会旋转为横向模式,并保持纵向模式。 我希望UIAlertView遵循包含视图控制器的规则,并显示与状态栏相同的方向


注意:我正在使用Xcode 5.0在iOS 8.0上运行我的应用程序,我正在搜索支持Xcode 5.0的解决方案实际上,我在iOS 7和早期iOS版本中以编程方式旋转了该类的
UIView
和状态栏,但在iOS 8中我遇到了方向问题,然后我读到了iOS 8的一个新变化,它与方向有关,如下所示:

我在iOS 7和iOS 8中运行了以下代码:

UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation];
BOOL landscape = (orientation == UIInterfaceOrientationLandscapeLeft || orientation == UIInterfaceOrientationLandscapeRight);
NSLog(@"Currently landscape: %@, width: %.2f, height: %.2f", 
      (landscape ? @"Yes" : @"No"), 
      [[UIScreen mainScreen] bounds].size.width, 
      [[UIScreen mainScreen] bounds].size.height);
以下是iOS 8的结果:

Currently landscape: No, width: 320.00, height: 568.00
Currently landscape: Yes, width: 568.00, height: 320.00
与iOS 7中的结果相比:

Currently landscape: No, width: 320.00, height: 568.00
Currently landscape: Yes, width: 320.00, height: 568.00
因此,我了解了[UIScreen mainScreen].bounds.size在iOS8中变得依赖于方向

在阅读了iOS 8的这一新变化后,我为iOS 8创建了一个新类,因此您有两种解决方案

解决方案1:您应该使用
UIAlertController
而不是
UIAlertView


解决方案2:您可以为iOS 8创建一个新的类,您将面临此定向问题。

Hi ajeet.cody,您有什么解决方案吗?如果是,请回复我的邮件id:shripad。chidrawar20@gmail.com. 寻找积极的答复。提前谢谢。@shripad20我已经发布了答案。我希望这对你有帮助。如果你有任何疑问,请告诉我。感谢您发回解决方案+1.感谢@ajeet提供您的解决方案。我强制旋转视图,但后来我更改了视图旋转的实现,解决了我的问题。