Ios6 无法从另一个类取消UIPover

Ios6 无法从另一个类取消UIPover,ios6,uipopovercontroller,Ios6,Uipopovercontroller,我有一个iPad应用程序,用XCode 4.6.3、iOS 6.2、ARC和故事板创建 我在SubViewData.m中以编程方式创建UIPopover @property (strong, nonatomic) UIPopoverController *popover; // make rectangle to attach popover CGRect rectangle = CGRectMake( touchPoint.x, touchPoint.y, 110, 1);

我有一个iPad应用程序,用XCode 4.6.3、iOS 6.2、ARC和故事板创建

我在SubViewData.m中以编程方式创建UIPopover

@property (strong, nonatomic) UIPopoverController *popover;

    //  make rectangle to attach popover
    CGRect rectangle = CGRectMake( touchPoint.x, touchPoint.y, 110, 1);  //  0 height puts arrow on exact touch point

    //  get addressability to storyboard ViewController
    UIViewController *popoverMainView = [[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil] instantiateViewControllerWithIdentifier:@"menuView"];

    popover = [[UIPopoverController alloc] initWithContentViewController:popoverMainView];
                            [popover presentPopoverFromRect:rectangle inView:self
                            permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
我在另一个类(QuickAppointment.m)中设置了当弹出窗口中的UIButton被点击时的通知。我从CalendarViewController获得通知并发出此代码。m:

SubViewData *svd = [[SubViewData alloc] init];
[svd.popover dismissPopoverAnimated:YES];

什么也没发生!我不明白为什么不。。。那么,我做错了什么

看看您正在编写的代码:

SubViewData *svd = [[SubViewData alloc] init];

这将创建一个全新的、完全不同的SubViewData实例,而不是显示popover的实例。

我尝试在SubViewData.m中放入dismise代码,但也没有发生任何事情。。。代码应该在哪里被删除?如何在不创建新实例的情况下访问SubViewData实例?(我以为我做的是对的,但显然不是)…因为我不知道你是如何或怎样添加到SubViewData的。m我对此无能为力。至于获得正确的实例——你这样做的方式与获得任何事物的实例的方式相同;通过传递对将调用其方法的对象的引用。我尝试了(传递引用)。。。这就是我使用的:[SubViewData.popover dismissPopoverAnimated:YES];它不知道popover是什么。。。你能给我一个文档,我可以在这里阅读整个实例化过程吗?我会非常非常感激的。我正在努力解决这个问题…你确定这不会给你编译器警告吗?看起来您要求的是类而不是对象的属性。SubViewData对象是否具有名为
popover
的属性?你把它设置成popover控制器了吗?是的。。。SubViewData有一个名为popover的对象(请参见上面的原始问题),它被设置为popover控制器(代码相同)。