8

所以我有一个带有按钮的弹出窗口。当按下该按钮时,我希望弹出框消失。这似乎很容易,但我无法为我的生活弄清楚。我用来显示弹出框的代码如下:

    AddCategoryViewController* content = [[AddCategoryViewController alloc] init];
 UIPopoverController* aPopover = [[UIPopoverController alloc]
          initWithContentViewController:content];
 aPopover.delegate = self;
 [content release];

 // Store the popover in a custom property for later use.
 self.addCategoryPopover = aPopover;
 [aPopover release];
 [addCategoryPopover presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];

在 addcategoryviewcontroller 中,我有:

    -(IBAction)saveAddCategory:(id)sender {
 if (rootViewController == nil)
  rootViewController = [[RootViewController alloc] init];

 [rootViewController.addCategoryPopover dismissPopoverAnimated:YES];
 [rootViewController dismissPopover];
}

Rootviewcontroller 是从中创建弹出框的地方。不幸的是,这些方法都不能消除它。有什么帮助吗?

4

4 回答 4

4

您将在此行看到警告。

 aPopover.delegate = self;

如果你会执行你的代码。该应用程序将崩溃。相反,您需要这样做。

于 2010-05-02T14:12:33.460 回答
2

我有

- (void)viewWillDisappear:(BOOL)anAnimated
{
    [self.dPopover dismissPopoverAnimated: NO];
    self.dPopover = nil;
    [super viewWillDisappear: anAnimated];
}

并且不明白为什么这在您的情况下不起作用。

if有点令人不安,所以我猜你并没有在谈论你认为的观点。rootViewController.addCategoryPopover可能为零,因为您制作了一个新控制器。

于 2010-04-19T05:07:55.703 回答
0

我想我用解决方案回答了一个类似的问题,该解决方案用于关闭一个UIViewMKMapView. 我的解决方案的使用与加载弹出框的任何其他视图基本相同。

看看: 如何在 iPad 上使用 MKMapView (SDK3.2) 中的 UIPopoverController 解除PopoverAnimated。我希望这能解决你的问题。

于 2010-05-09T21:13:47.523 回答
0

使用 NSNotificationCenter 来 DissmissPoperController Fro Father viewControll

于 2013-05-05T02:21:56.807 回答