Swift,将数据从弹出窗口传回视图控制器

Swift, Pass data back from popover to view controller

我已经在弹出框控制器中对原始数组进行了排序。现在我想将该数组发送回表视图和地图视图的原始视图控制器。

下面是我的代码

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


    }

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

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

当前 VC:

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

在您的 class.

中创建一个变量
weak var mDelegate:MyProtocol?

现在,当您弹出视图控制器时调用协议方法,使用您的 "properties" 数组作为参数。

mDelegate?.sendArrayToPreviousVC(properties)

在上一个VC中:

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

currentVC.mDelegate = self
//PUSH VC

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

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