문제

So I have a popover with a button in it. When that button is pushed, I want the popover to go away. It seems easy enough, but I can't figure it out for the life of me. The code I use to show the popover is below:

    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];

Within the addcategoryviewcontroller, I have:

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

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

Rootviewcontroller is where the popover is being created from. Unfortunately, neither of those methods work to dismiss it. any help?

도움이 되었습니까?

해결책

You would be seeing a warning at this line.

 aPopover.delegate = self;

and if you would execute your code. The app would crash. Instead you need to do it like this.

다른 팁

I have

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

and don't see why this wouldn't work in your case.

Your if is a bit troubling, so my guess is you aren't talking to the view you think you are. rootViewController.addCategoryPopover is probably nil, because you made a new controller.

I think I answered just a similar question with the solution I used to dismiss a popover with a UIView loaded from a MKMapView. The use of my solution is basically the same as for any other view loading a popover.

Have a look at: How to dismissPopoverAnimated on iPad with UIPopoverController in MKMapView (SDK3.2). I hope that solved your problem.

use NSNotificationCenter To DissmissPoperController Fro Father viewControll

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top