0

我有一个根视图控制器,我在其中加载了一个包含三个按钮的子视图。当我触摸其中一个时,会显示一个弹出框。弹出框包含一个图像视图和一个带有完成按钮的栏。触摸完成按钮时,我想关闭此弹出窗口。为此,我正在使用此代码

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

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


}

弹出框是这样呈现的

- (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];
          }
}
4

5 回答 5

3

试试这个代码

[self dismissViewControllerAnimated:YES completion:nil];

或者试试@nirav 的回答

于 2012-11-28T11:18:04.493 回答
1

PopUpOver 可以关闭 UIWebView 的默认上下文菜单。这很简单,因为我们只需要将网页正文元素的 CSS 属性“-webkit-touch-callout”设置为“none”。我们可以在 UIWebView 委托方法“webViewDidFinishLoad:”中使用 JavaScript 来做到这一点……</p>

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
[webView stringByEvaluatingJavaScriptFromString:@"document.body.style.webkitTouchCallout='none';"];
}
于 2012-11-28T11:34:59.783 回答
1

尝试编写下面的代码

[yourPopOverobject dismissPopoverAnimated:YES];

让我知道它是否有效..

快乐编码!!!!

于 2012-11-28T11:15:15.720 回答
0

尝试检查以下代码...

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

让我知道它是否有效...

于 2012-11-28T11:30:22.873 回答
0
    - (IBAction)btnDone:(UIBarButtonItem *)sender {

      [self dismissViewControllerAnimated:YES completion:nil];


    }
于 2012-11-28T11:20:03.297 回答