【问题标题】:Returning data from UIViewController in a UIPopoverController when popover is dismissed当弹出框被解除时,从 UIPopoverController 中的 UIViewController 返回数据
【发布时间】:2012-06-13 04:37:14
【问题描述】:

我有第二个视图控制器设置为在 UIPopoverController 中显示。我在第二个视图控制器中设置了一个委托,因此当用户点击“完成”按钮时,它将数据传递回第一个视图控制器。数据是用户所做选择的列表,而不是单个选择。

如果用户在弹出窗口之外点击并被解雇,我无法找到将数据传递回第一个视图控制器的方法。现在,如果用户点击弹出窗口的一侧并被关闭,我会丢失数据。

我想我可以通过在弹出窗口外部点击来限制他们关闭弹出窗口,但我宁愿不这样做。

有什么想法吗?

【问题讨论】:

    标签: objective-c ios uipopovercontroller


    【解决方案1】:

    当您呈现UIPopoverController 时,将其delegate 设置为self

    然后在类中加入这个函数

    - (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController
    {
        YourViewController *controller =  popoverController.contentViewController;
        MyData *data = controller.yourData;
        //Do something with data
    }
    

    这个函数会在popover关闭时调用

    【讨论】:

    • 我认为如果您担心用户通过在弹出框外部点击来关闭弹出框,您可能需要实现“popoverControllerShouldDismissPopover”。
    • 是的,我有,但我不相信我可以从那里访问第二个视图控制器的数据...
    • 哈!太好了,谢谢!唯一需要注意的是,您需要键入强制转换视图控制器,否则您会收到警告。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-26
    相关资源
    最近更新 更多