【问题标题】:Dismiss the popover view关闭弹出视图
【发布时间】:2012-11-28 11:12:03
【问题描述】:

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

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

【问题讨论】:

  • 你在 parkMap 类上完成按钮了吗?

标签: iphone ios xcode ipad uipopovercontroller


【解决方案1】:

试试这个代码

[self dismissViewControllerAnimated:YES completion:nil];

或者试试@nirav 的回答

【讨论】:

    【解决方案2】:

    试着写下面的代码

    [yourPopOverobject dismissPopoverAnimated:YES];
    

    让我知道它是否有效..

    编码愉快!!!!!

    【讨论】:

    • 它应该可以工作的人...告诉我你是如何呈现弹出控制器的......写一些代码......
    • 我的视图消失了,但弹出的黑框仍然存在
    • 好的,只需删除该代码.. [self.view removeFromSuperview];然后检查发生了什么......让我知道
    • 我发布了另一个代码,试试那个,我在那个代码中放了一个委托方法。在那个方法中放断点,让我知道
    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:
          - (IBAction)btnDone:(UIBarButtonItem *)sender {
      
            [self dismissViewControllerAnimated:YES completion:nil];
      
      
          }
      

      【讨论】:

        【解决方案5】:

        尝试检查下面的代码...

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

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

        【讨论】:

        猜你喜欢
        • 2014-08-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-21
        相关资源
        最近更新 更多