【发布时间】:2013-11-08 02:13:53
【问题描述】:
在 iOS7 中,很少但偶尔,当我在显示 UIAlertView 时旋转我的应用程序时,只有 alertView 和状态栏旋转,而不是我的应用程序。有其他人经历过这种情况和/或找到解决方法吗?
【问题讨论】:
-
以下方法都不适合我,虽然我还没有在 7.1 中重新测试
标签: ios7 uialertview
在 iOS7 中,很少但偶尔,当我在显示 UIAlertView 时旋转我的应用程序时,只有 alertView 和状态栏旋转,而不是我的应用程序。有其他人经历过这种情况和/或找到解决方法吗?
【问题讨论】:
标签: ios7 uialertview
我已经通过向应用委托添加下一个方法解决了这个问题:
- (void)application:(UIApplication *)application willChangeStatusBarOrientation:(UIInterfaceOrientation)newStatusBarOrientation duration:(NSTimeInterval)duration {
NSArray *windows = [application windows];
for (UIWindow *nextWindow in windows) {
[[nextWindow.rootViewController class] attemptRotationToDeviceOrientation];
}
}
【讨论】:
我遇到了相反的问题。我的应用程序会旋转,但警报视图不会旋转。我发现这是因为我在 UIActionSheet 被解雇后立即显示警报视图(所以当它发生解雇动画时)。这似乎触发了一个错误,该错误将使警报视图不随应用程序旋转(以及稍后的其他一些小视觉问题)。我通过在操作表开始关闭后半秒显示警报视图来解决这个问题,如下所示:
[alertView performSelector:@selector(show) withObject:nil afterDelay:0.5];
【讨论】:
UIActionSheet,而是在显示UIAlertView 时关闭了视图控制器,这解决了问题。
我认为iOS7问题的根源在于Apple改变了UIAlertView的外观机制。 从现在开始,在启动两个私有视图控制器之后,任何显示的 alertView 都会出现
_UIModalItemAppViewController
_UIModalItemsPresentingViewController
换句话说,现在 UIAlertView 不是一个纯粹的视图 - 它是一些复杂的视图控制器集合的一部分,具有完整的视图控制器生命周期。
【讨论】: