如何通过单击栏按钮关闭弹出框

Posted

技术标签:

【中文标题】如何通过单击栏按钮关闭弹出框【英文标题】:how to dismiss the popover with the bar button click 【发布时间】:2013-02-26 13:18:03 【问题描述】:

嘿,我有一个我必须在其中显示弹出框的地方。我可以轻松做到这一点。当显示其他类的弹出窗口时。此弹出窗口中有一个带有条形按钮“完成”的标题栏。我想通过单击完成按钮来关闭弹出框。

如何使用完成按钮关闭弹出框?

谢谢

【问题讨论】:

【参考方案1】:

您是否尝试过寻找解决方案?

-(void) onDoneButtonClick 
    [popover dismissPopoverAnimated:YES];

【讨论】:

谢谢乔治 我试过这个 UIPopoverController* popOverController = [[UIPopoverController alloc]init]; if ([popOverController isPopoverVisible]) [popOverController dismissPopoverAnimated:YES];但它会崩溃并给出错误 -[UIPopoverController init] 不是有效的初始化程序。您必须调用 -[UIPopoverController initWithContentViewController:]。'【参考方案2】:

- (void)dismissPopoverAnimated:(BOOL)animatedUIPopoverController 类的方法。为了以编程方式关闭弹出框,您必须自己保留对呈现的UIPopoverController 的引用。

这是一个可能的解决方案:

在弹出框加载的视图控制器中,定义一个属性。

@interface MyViewController: UIViewController

@property (nonatomic, strong) UIPopoverController *popover;

@end

在 segue 到 popover 执行之前,存储 segue 的 popover 控制器。

- (void)prepareForSegue:(UIStoryboardPopoverSegue *)segue sender:(id)sender 

    if ([segue.identifier isEqualToString:@"mySegue"]) 
    
        MyViewController *dvc = segue.destinationViewController;
        dvc.popover = [segue popoverController];
    

当按钮被点击时,关闭弹出框。

- (void)onButtonClick:(id)sender

    [self.popover dismissPopoverAnimated:YES];

【讨论】:

【参考方案3】:

在简单的popoverobj中并在按钮事件上使用简单的方法。

   [popoverobj dismissPopoverAnimated:YES];

【讨论】:

以上是关于如何通过单击栏按钮关闭弹出框的主要内容,如果未能解决你的问题,请参考以下文章

在win10访问samba弹出访问框很慢怎么解决

关闭弹出框后表格视图没有更新?

UIPopoverController?在弹出框控制器外点击时无法关闭

没有箭头无法定位弹出框

如何检测弹出框关闭

通过弹出框 didselcet 关闭模态视图