_UIFallbackPresentationViewController

当我closures在iPhone上的UIWebView中的UIMenuController上点击Define打开的字典时,我不断收到以下错误: –

Unbalanced calls to begin/end appearance transitions for <_UIFallbackPresentationViewController: 0x10ab9640>. 

在出现这个错误之后,UIMenuController会在任何UIWebView中停止显示。

任何想法发生了什么?

更新:字典视图打开时,实际显示错误,而不是解雇它。

更新2:错误是应用程序广泛。 任何地方都有可选的文本(即webview,textview等),我只能使用一次定义字典。 这个错误出现,然后,我必须退出应用程序,并再次启动,使用字典。

终于find了这个答案。 当字典被系统呈现时,它的窗口获得焦点(参见makeKeyAndVisible:在UIWindow中),这非常棒。 问题出现在closures持有字典的窗口不能正确给出主应用程序窗口的焦点的地方。

如果在字典出现之前和之后打印出[UIApplication sharedApplication] .keyWindow,那么您将看到在应用程序窗口是keyAndVisible之前以及之后它是不同的窗口。 对于我来说,我有一个单独的应用程序消息窗口,居住在状态栏的顶部,那是一个字典被解雇后的keyAndVisible。

所以我所要做的只是解决这个问题,在我的UIWindow子类中有以下重写方法,它们不正确地接收焦点:

 - (void) makeKeyWindow { AppDelegate * appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; [appDelegate.window makeKeyAndVisible]; } 

我不确定如果没有你自己的UIWindow,那么这将如何工作,但绝对最坏的情况下,你可以添加一个虚拟的UIWindow,它将获得焦点,并添加完全相同的代码片段。

错误消息build议您启动一个转换,但对相应的结束方法调用丢失。

  • 你有没有尝试过没有animation的过渡? ( animated: NO

  • 有时候在使用switch语句并忘记break;时会出现这种行为break;

  • 如果你正在执行一个-viewDidAppear ,在-viewDidAppear而不是-viewWillAppear

希望它有一点帮助! 🙂