UIPopoverController 不关闭

Posted

技术标签:

【中文标题】UIPopoverController 不关闭【英文标题】:UIPopoverController does not close 【发布时间】:2012-05-29 09:35:03 【问题描述】:

我有一个普通的 UIPopoverController 是这样制作的:

-(IBAction)btKBIs_click:(id)sender


if(kbiPopOver != NULL)
    [kbiPopOver dismissPopoverAnimated:YES];

KBIViewController *kbiViewController = [[KBIViewController alloc]initWithNibName:@"KBIViewController" bundle:nil CurrentUser:currentUser];
kbiViewController.currentStatus = FIRST;
kbiViewController.firstlist = [currentUser getDescriptions];
kbiViewController.mapViewController =self;


UINavigationController* kbiNavController = [[UINavigationController alloc] initWithRootViewController:kbiViewController];

kbiPopOver = [[UIPopoverController alloc] initWithContentViewController:kbiNavController];
kbiPopOver.delegate = self;

kbiViewController.kbiPopOver = kbiPopOver;

[kbiPopOver presentPopoverFromBarButtonItem:sender 
                     permittedArrowDirections:UIPopoverArrowDirectionUp animated:true];


在我调用的类 KBIViewController 中:

    [self.kbiPopOver dismissPopoverAnimated:YES];
    [self.kbiPopOver.delegate popoverControllerDidDismissPopover:self.kbiPopOver];

要关闭它,但它不起作用。为什么?

【问题讨论】:

【参考方案1】:

您是否在类接口中添加了<UIPopOverControllerDelegate> 并实现了– popoverControllerDidDismissPopover: 方法?当您在弹出框外点击时,只需在代码或 delgate 方法中显式调用dismissPopoverAnimated:。从您的代码中删除 [self.kbiPopOver.delegate popoverControllerDidDismissPopover:self.kbiPopOver];

【讨论】:

当用户点击它关闭的屏幕时,我希望它在点击视图时也关闭......我的意思是我希望它在我需要时关闭。 我应该没有实现 popoverControllerDidDismissPopover 吗? 我只想关闭 KBIViewController 的窗口,我做了 [self.navigationController popViewControllerAnimated:YES];但剂量不起作用...... 弹出框必须使用(名称说明)dismissPopoverAnimated 关闭。你在这个项目中使用 ARC 吗?如果没有,则必须在添加后释放视图控制器和导航控制器。 我做了 [self.kbiPopOver 发布]; [self.navigationController 发布];它不会关闭

以上是关于UIPopoverController 不关闭的主要内容,如果未能解决你的问题,请参考以下文章

关闭 UIPopoverController 的最快方法是啥?

如何在 UIPopoverController 上创建按钮 [关闭]

ipad - 关闭 UIPopoverController

关闭 UIPopoverController 不会卸载 contentController

可以在拖动操作上关闭 UIPopoverController

UIPopoverController 在 iOS 8 / Xcode 6 中没有关闭