开发者

UIPopoverController presented from a UIButton does not hide?

I have a UIPopoverController that is presented from a button on my UIViewController but when I tap on any part of the view that is not the popover it is not hiding?

The buttons that present this popover are created dynamically, you'll see that referenced in the code below:

-(IBAction)showModifiers:(id)sender{

    [self.popoverController dismissPopoverAnimated:YES];

    UIView *theSuperview = self.view; 
    CGPoint touchPointInSuperview = [sender locationInView:theSuperview];
    UIView *touchedView = [theSuperview hitTest:to开发者_Python百科uchPointInSuperview withEvent:nil];

    currentPopoverTag = [touchedView tag];
    NSLog(@"Show Modifiers %i %i", [touchedView tag], currentPopoverTag);

    RepZioCoreDataAppDelegate *appDelegate  = [[UIApplication sharedApplication] delegate];
    if (appDelegate.popoverController)
        [appDelegate.popoverController dismissPopoverAnimated:YES];

    self.modifierListPopoverViewController = nil;   
    ModifierListCollection *collection = [self.modifierLists objectAtIndex:[touchedView tag]-100];
    ModifierList *modifierList = [self getModifierList:collection.ModifierListID];
    self.modifierListPopoverViewController =
    [[[ModifierListPopoverViewController alloc] initWithModifierList:modifierList withManufacturerID: self.manufacturerID] autorelease];
    self.modifierListPopoverViewController.delegate = self;

    self.popoverController = [[[UIPopoverController alloc] initWithContentViewController:modifierListPopoverViewController] autorelease];
    [self.popoverController presentPopoverFromBarButtonItem:sender  permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}


I realize it's unlikely, but does your ModifierListPopoverViewController class set its modalInPopover property to YES? (the default is NO, which should give you the behavior you're looking for).


It seems that some view tackles the touch event.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜