【发布时间】:2014-01-26 04:30:00
【问题描述】:
我有一个类 (ViewOpenAppointments),我在其中创建和显示 UIPopover。这是在我的 .h 文件中定义弹出框的代码:
@interface ViewOpenAppointments : UIView {
}
@property (nonatomic, retain) UIPopoverController *popoverController;
-(void)createOpenAppointmentsPopover: (UIButton *) obViewOpenAppts;
@end
我检查了代码,如果弹出框可见,则将其关闭。这是代码:
// create popover
UIViewController* popoverContent = [[UIViewController alloc] init];
// UIView *popoverView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 650, 416)];
ViewOpenAppointments *popoverView = [[ViewOpenAppointments alloc] initWithFrame:CGRectMake(0, 0, 650, 416)];
popoverView.backgroundColor = [UIColor whiteColor];
popoverContent.preferredContentSize = CGSizeMake(650.0, 416.0);
// create the popover controller
popoverController = [[UIPopoverController alloc] initWithContentViewController:popoverContent];
popoverController.delegate = (id)self;
[popoverController setPopoverContentSize:CGSizeMake(650, 416) animated:NO];
if ([popoverController isPopoverVisible]) {
[popoverController dismissPopoverAnimated:YES];
}
[popoverController presentPopoverFromRect:CGRectMake(650, 416, 10, 50) inView: obViewOpenAppts
permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
问题是关闭弹出框的代码永远不会被命中,这意味着它不可见。但我仍然收到错误消息(在问题标题中描述)。
我做错了什么?
【问题讨论】:
-
如果您不保留控制器,即使在可见时它也会被释放并且您不保留
-
控制器被保留...查看.h文件中的代码
-
不是 ;) 这就是“问题”所显示的内容。您需要向我们展示谁持有显示弹出窗口的 ViewOpenAppointments 实例
-
我该怎么做? (我所有的代码都在上面,所以请告诉我我需要改变什么):D
标签: objective-c uiview uiviewcontroller ios7 uipopover