在iOS 7中显示UIAlertView时的旋转问题

时间:2013-11-08 02:13:54

标签: ios7 uialertview

在iOS7中,很少但很偶然,当我在显示UIAlertView时旋转我的应用时,只有alertView和状态栏会旋转,而不是我的应用。有没有其他人经历过这个和/或找到了解决方法?

3 个答案:

答案 0 :(得分:15)

我已经通过向app delegate添加下一个方法解决了这个问题:

- (void)application:(UIApplication *)application willChangeStatusBarOrientation:(UIInterfaceOrientation)newStatusBarOrientation duration:(NSTimeInterval)duration  {
NSArray *windows = [application windows];
for (UIWindow *nextWindow in windows) {
    [[nextWindow.rootViewController class] attemptRotationToDeviceOrientation];
     }
}

答案 1 :(得分:4)

我遇到了相反的问题。我的应用会旋转,但警报视图不会旋转。我发现这是因为我在UIActionSheet被解雇后立即显示警报视图(所以当它解雇动画正在进行时)。这似乎触发了一个错误,该错误将使警报视图不随应用程序一起旋转(以及稍后的一些其他轻微视觉问题)。我通过在操作表开始解雇后半秒显示警报视图解决了这个问题,如下所示:

[alertView performSelector:@selector(show) withObject:nil afterDelay:0.5];

答案 2 :(得分:0)

我认为iOS7中问题的根源是Apple改变了 UIAlertView 外观机制。 从现在起,在启动两个私有视图控制器之后,会出现任何alertView节目

_UIModalItemAppViewController
_UIModalItemsPresentingViewController

换句话说,现在UIAlertView不是一个纯粹的视图 - 它是一些具有全视图控制器生命周期的复杂视图控制器集合的一部分。