在基于视图的应用程序中,拆分视图在纵向模式下崩溃

时间:2012-05-18 14:18:48

标签: objective-c uisplitviewcontroller ipad landscape-portrait

我正在开发一个基于视图的iPad应用程序。它是一个基于视图的简单应用程序,其中第一个加载的视图包含一个按钮。单击此按钮我创建一个包含两个UINavigationControllers的SplitViewController(一个Master和其他Detail)在此之后,我正在删除当前视图(第一个视图)并将splitViewController的视图添加到窗口.Master包含一个按钮作为条形按钮项(Home按钮),它删除SplitViewController的视图并将第一个视图添加到窗口。 如果我在横向模式下启动我的应用程序它工作正常。但是如果我以纵向模式启动我的应用程序并单击主页按钮(在主导航栏上)它没有到达第一个视图并显示以下错误。这个错误如果我在纵向模式下启动我的应用程序,如果我将我的方向从纵向更改为横向,也会出现。

2012-05-18 19:12:52.796 test_Project[3703:f803] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIPopoverController presentPopoverFromRect:inView:permittedArrowDirections:animated:]: Popovers cannot be presented from a view which does not have a window.'

2 个答案:

答案 0 :(得分:0)

要呈现一个popover父视图,应该有一个有效的框架。因此,尝试在添加弹出窗口后检查是否为父视图设置框架。

答案 1 :(得分:0)

最后我得到了自己的回答。 在基于视图的应用程序中,当使用弹出窗口时,因此当从分割视图返回到视图时,首先关闭该弹出窗口(隐藏),然后删除拆分视图。