我在我的第一个视图控制器中声明了一个字典,我希望将字典通过segue传递给详细视图控制器,唯一的问题是我不完全确定如何实现这一点?
第一个视图中的字典控制器:
var items = [NSDictionary]()
详情视图控制器:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
var Pr : DetailViewController = segue.destinationViewController as! DetailViewController
答案 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
}
}