【问题标题】:Swift, Pass data back from popover to view controllerSwift,将数据从弹出窗口传回视图控制器
【发布时间】:2015-08-16 05:48:45
【问题描述】:

我已经在 popover 控制器中对原始数组进行了排序。现在我想将该数组发送回原始视图控制器以用于表格视图和地图视图。

下面是我的代码

 If propertyNameSrt == false
    {
        if ascSorting == false
        {
            properties.sort(sorterForbuildingAsc)
        }
        else
        {
            properties.sort(sorterForbuildingDesc)
        }


    }

我的数组是包含自定义对象的属性。 如何将其传递给我的原始视图控制器? 提前致谢, 达瓦尔。

【问题讨论】:

    标签: swift uiviewcontroller popover


    【解决方案1】:

    您可以使用委托(协议)方法将数据发送回之前的视图控制器。

    在当前的 VC 中:

    protocol MyProtocol: class
    {
        func sendArrayToPreviousVC(myArray:[AnyObject])
    }
    

    在你的类中创建一个 var。

    weak var mDelegate:MyProtocol?
    

    现在当你弹出视图控制器时调用协议方法,你的“属性”数组作为参数。

    mDelegate?.sendArrayToPreviousVC(properties)
    

    在以前的 VC 中:

    在您之前的 VC 中,当您推送当前 VC 时,将 mDelegate 属性设置为 self。

    currentVC.mDelegate = self
    //PUSH VC
    

    现在在你之前的 VC 中实现协议方法。

    func sendArrayToPreviousVC(myArray:[AnyObject]) {
        //DO YOUR THING
    }
    

    【讨论】:

    • 有一点问题..var mDelegate:MyProtocol? (将在 popviewcontroller 中区分?)或以前的控制器?
    • 在popviewcontroller中
    • ok @Thijs ..所以我如何在我的原始视图控制器中定义这个(currentVC.mDelegate = self)?很抱歉打扰您
    • 哦,我有点搞砸了...而不是 uiPopovercontroller 我创建了 uiviewcontroller..
    • 以前的 VC 应该实现 MyProtocol PreviousVC: UIViewController, MyProtocol
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-24
    • 1970-01-01
    • 2019-06-09
    相关资源
    最近更新 更多