从其内容控制器中解除iPad UIPopoverController

时间:2010-04-17 21:34:18

标签: ipad uipopovercontroller popover

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

    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是创建popover的地方。不幸的是,这些方法都没有解决它。有什么帮助吗?

4 个答案:

答案 0 :(得分:4)

你会在这一行看到警告。

 aPopover.delegate = self;

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

答案 1 :(得分:2)

我有

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

并且不明白为什么这对你的情况不起作用。

你的if有点令人不安,所以我的猜测是你不是在和你认为的那种观点交谈。 rootViewController.addCategoryPopover可能是零,因为你创建了一个新的控制器。

答案 2 :(得分:0)

我想我用解决方案回答了一个类似的问题,我解决了从UIView加载MKMapView的弹出框。 我的解决方案的使用与加载popover的任何其他视图的使用基本相同。

看看: How to dismissPopoverAnimated on iPad with UIPopoverController in MKMapView (SDK3.2)。我希望这能解决你的问题。

答案 3 :(得分:0)

使用NSNotificationCenter To DissmissPoperController Fro Father viewControll