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

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

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

谢谢

【问题讨论】:

    标签: iphone ios objective-c ios6 uipopovercontroller


    【解决方案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];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-06-29
        • 2013-03-27
        • 1970-01-01
        • 1970-01-01
        • 2011-02-05
        • 2018-04-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多