Swift prepareForSegue初始化空数组

时间:2016-03-24 10:30:05

标签: swift

当我通过prepareForSegue将数据从FirstViewController传递到SecondViewController(表视图)时,我在secondViewController中有一个空数组来收集数据,但每次视图加载数组时init都为空。

在进入核心数据或nsuserdefaults之前,如何将数据添加到第二个视图控制器?

此处存在类似的问题,但该方法尚未解决我的问题。 Trouble passing Array through prepareForSegue

// View Controller 

// a new dictionary object is created
myDictionary = ["apples": 3, "oranges": 4, "bananas": 5]

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

    if segue.identifier == "saveData" {

        let dvc = segue.destionationViewController as! MyTableViewController

        dvc.arrayOfDictionaries += [myDictionary]

    }
    resetAll()
} 


// My Table View Controller
var arrayOfDictionaries: [[String: AnyObject]] = []
var dictionary = [String:AnyObject]()
TableViewContrller中的

我有一个函数

override func viewDidLoad() {
    super.viewDidLoad()

    loadData()  //
}

func loadData() {

    for dict in arrayOfDictionaries { 

        for (key, value) in dict {
        // extract data
        dictionary[key] = value

        }

    }
}

如何在arrayOfDictionaries中保留数据? 感谢

1 个答案:

答案 0 :(得分:0)

如果数组为空,为什么要将值附加到数组?

为避免将来出现问题,您只需致电

即可
dvc.arrayOfDictionaries = [myDictionary]

所以你永远不会关心arrayOfDictionaries状态(如果它被初始化,如果它是空的或其他任何东西)

请查看表视图控制器中的viewDidLoad和其他视图生命周期方法。您是否有可能在那里再次初始化阵列?