UIPopoverController?在弹出框控制器外点击时无法关闭
Posted
技术标签:
【中文标题】UIPopoverController?在弹出框控制器外点击时无法关闭【英文标题】:UIPopoverController? Cannot dismissed when tapping outside the popover controller 【发布时间】:2012-10-22 23:56:05 【问题描述】:我将项目更改为通用应用程序并切换到 Xcode 的更新版本后开始出现问题。
目前,我的应用程序有一个导航栏和一个带有按钮的控制器。当用户单击该按钮时,它将弹出一个 UIPopoverController。这里一切都很好。现在我尝试与 UIPopoverController 中的列表进行交互,列表中没有任何反应。此外,当我尝试通过在弹出框控制器外部点击来关闭弹出框控制器时,弹出框确实会关闭,我什至可以与弹出框控制器后面的控件进行交互。
在我将 Xcode 更新到最新的 ios 之前,它运行良好。在我更改的代码中,让 xib 文件具有窗口视图,在应用程序委托文件中,我初始化了那个 xib 文件。
这显示在下面的代码中。
TViewController* controller = [[TController alloc] initWithNibName:@"MainViewController_IPad" bundle:NULL];
[controller.navigationController setNavigationBarHidden:TRUE animated:TRUE];
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
[self.window setRootViewController:controller];
[self.window makeKeyAndVisible];
//((TopicShowViewController*)self.window.rootViewController).navigationController.navigationBarHidden = true;
self.navigationController = ((TopicShowViewController*)self.window.rootViewController).navigationController;
self.navigationController.navigationBarHidden = true;
[controller release];
上面的代码,我必须创建窗口对象,但 TViewController 本身已经有一个窗口对象。如果我在没有 xib 文件中的窗口对象的情况下运行它,或者从上面的代码显式初始化窗口对象,则 TViewController 将不会按预期显示。
我不知道这里出了什么问题...抱歉,描述可能太长而无法理解,但请帮忙。
【问题讨论】:
【参考方案1】:通用应用程序是设计用于在 iPhone 和 iPad 上运行的应用程序。但是,iPhone 不支持 UIPopoverController。如果您尝试在 iPhone 上打开弹出框,您的应用将抛出异常。
【讨论】:
对不起。我有两个项目,一个用于 iPhone,另一个用于 iPad。我想将它们合并在一起。在通用应用程序中,iPhone 有自己的代码,iPad 有自己的代码,但也可能共享类似的代码。我在这里面临的问题是针对 iPad 而不是 iPhone。以上是关于UIPopoverController?在弹出框控制器外点击时无法关闭的主要内容,如果未能解决你的问题,请参考以下文章
如何在顶部左侧有 UIPopOverController 的箭头?
如何关闭 UIPopoverController 并选择表格单元格?
从 UIPopoverController 外点击后获取边界
UIPopoverController dealloc 被调用——ARC 环境