未知错误[UIWindow endDisablingInterfaceAutorotation]

时间:2010-03-03 03:41:46

标签: iphone objective-c uikit uiwindow

我收到此错误。我不知道为什么要调用它,谷歌并没有真正帮助。有什么建议吗?

-[UIWindow endDisablingInterfaceAutorotation] called on <UIWindow: 0x4e0ec50; frame = (0 0; 320 480); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x4e0f9e0>> without matching -beginDisablingInterfaceAutorotation. Ignoring.

5 个答案:

答案 0 :(得分:7)

我最近遇到了同样的问题。事实证明我偶然两次显示相同的UIActionSheet。例如

[actionSheet showInView:aView];

... more code ...

// WOOPS! I already did this
[actionSheet showInView:aView];

当UIActionSheet被解雇时(大约第12次,可能是-beginDisablingInterfaceAutorotation堆栈深度),它导致了错误。删除对-showInView的冗余调用:修复了问题。

答案 1 :(得分:5)

使用UIViewController课程执行自定义UIViewControllerAnimatedTransitioning演示文稿时,我遇到了类似的问题。对我来说,打印输出如下所示:

-[UIApplication endIgnoringInteractionEvents] called without matching -beginIgnoringInteractionEvents. Ignoring.
-[UIWindow endDisablingInterfaceAutorotationAnimated:] called on <UIWindow: 0x7f9f83f42db0; frame = (0 0; 375 667); autoresize = W+H; gestureRecognizers = <NSArray: 0x7f9f83f44ed0>; layer = <UIWindowLayer: 0x7f9f83f40ca0>> without matching -beginDisablingInterfaceAutorotation. Ignoring.
-[UIWindow endDisablingInterfaceAutorotationAnimated:] called on <UITextEffectsWindow: 0x7f9f862553a0; frame = (0 0; 375 667); opaque = NO; autoresize = W+H; layer = <UIWindowLayer: 0x7f9f83f9a1e0>> without matching -beginDisablingInterfaceAutorotation. Ignoring.

我发现错误是由于调用transitionContext.completeTransition(true)两次(一次在animateTransition(_:)中,另一次在CAAnimation委托animationDidStop(_:flag:)方法中)引起的。你可能想检查一下你是不是在做类似的事情。

答案 2 :(得分:3)

在动画选项中添加UIViewAnimationOptionLayoutSubviews解决了我的问题。

答案 3 :(得分:-1)

我无缘无故地遇到了类似的问题。我的版本没有任何改变。我所要做的就是从我的测试设备中删除我的应用程序,重建并重新部署,这个问题就解决了。值得一试!

答案 4 :(得分:-6)

看起来你必须先打电话给-beginDisablingInterfaceAutorotation而你却没有这样做。