iOS developer
iOS developer

Reputation: 110

Dismiss the popover view

I have a root view controller in which I load a sub view that contains three buttons. When I touch one of them a popover is shown. The popover contains an image view and a bar with a Done button. I want to dismiss this popover when the Done button is touched. To accomplish this I am using this code

- (IBAction)btnDone:(UIBarButtonItem *)sender {
    [self.view removeFromSuperview];

        [APPDELEGATE.parkDetail. popoverController dismissPopoverAnimated:YES];
   // [APPDELEGATE.parkDetail.popoverController dismissPopoverAnimated:YES ];


}

and the popover is presented like this

- (IBAction)btnParkMap:(id)sender {
       [popoverController dismissPopoverAnimated:YES];
    if ([popoverController isPopoverVisible]) {
        [popoverController dismissPopoverAnimated:YES];
    } else {
        parkMap * v = [[parkMap alloc]initWithNibName:@"parkMap" bundle:nil];
        v.contentSizeForViewInPopover = CGSizeMake(350, 300);
        popoverController = [[UIPopoverController alloc] initWithContentViewController:v];
               CGRect popRect = CGRectMake(self.btnShowPopover.frame.origin.x+330,
                                    self.btnShowPopover.frame.origin.y+170,
                                    self.btnShowPopover.frame.size.width,
                                    self.btnShowPopover.frame.size.height);


        [popoverController presentPopoverFromRect:popRect inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
          }
}

Upvotes: 0

Views: 6936

Answers (5)

NiravPatel
NiravPatel

Reputation: 3260

Try to check below code...

if ([popoverobject isPopoverVisible]) {
   [popoverobject dismissPopoverAnimated:YES];
   [popoverobject release];
}

}

#pragma mark -
#pragma mark UIPopoverController delegate

-(void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController {
 //if (popoverController == popoverobject) {
    [popoverobject release];
 //  }
}

- (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController {

   NSLog(@\"popover about to be dismissed\");
   return YES;
  }

let me know is it working or not...

Upvotes: 0

SameSung Vs Iphone
SameSung Vs Iphone

Reputation: 614

The PopUpOver can beswitch off the default contextual menu of UIWebView. This is easy because we only need to set the CSS property “-webkit-touch-callout” to “none” for the body element of the web page. We can do this using JavaScript in the UIWebView delegate method “webViewDidFinishLoad:”…

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
[webView stringByEvaluatingJavaScriptFromString:@"document.body.style.webkitTouchCallout='none';"];
}

Upvotes: 1

Rose
Rose

Reputation: 437

    - (IBAction)btnDone:(UIBarButtonItem *)sender {

      [self dismissViewControllerAnimated:YES completion:nil];


    }

Upvotes: 0

Shyantanu
Shyantanu

Reputation: 681

Try this code

[self dismissViewControllerAnimated:YES completion:nil];

Or try @nirav's ans

Upvotes: 3

NiravPatel
NiravPatel

Reputation: 3260

Try to write below code

[yourPopOverobject dismissPopoverAnimated:YES];

Let me know whether it is working or not..

Happy Coding!!!!!

Upvotes: 1

Related Questions