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 上创建按钮 [关闭]
关闭 UIPopoverController 不会卸载 contentController