在swift中通过segue发送字典

时间:2016-08-23 13:48:03

标签: swift dictionary

我在我的第一个视图控制器中声明了一个字典,我希望将字典通过segue传递给详细视图控制器,唯一的问题是我不完全确定如何实现这一点?

第一个视图中的字典控制器:

    var items = [NSDictionary]()

详情视图控制器:

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    var Pr : DetailViewController = segue.destinationViewController as! DetailViewController

2 个答案:

答案 0 :(得分:1)

在DetailViewController中添加一个名为items的变量。

class DetailViewController : UIViewController {
    var items : NSDictionary?
}

然后在准备segue时设置值。

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if let destView : DetailViewController = segue.destinationViewController as? DetailViewController {
        destView.items = self.items
    }
}

答案 1 :(得分:1)

var items = [NSDictionary]() - 这是NSDictionary的元素数组。如果你希望NSDictionary - 声明它没有方括号:

var items = NSDictionary()

现在,在DetailViewController中你应该声明属性,它将能够保存传递的字典。它可以完全相同:

class DetailViewController: UIViewController {
    var items = NSDictionary()
    /* ... */
}

现在您可以使用prepareForSegue传递字典(您应该使用segue标识符,在故事板中设置):

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "yourSegue" {
        let Pr : DetailViewController = segue.destinationViewController as! DetailViewController
        Pr.items = items
    }
}