当我通过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中保留数据? 感谢
答案 0 :(得分:0)
如果数组为空,为什么要将值附加到数组?
为避免将来出现问题,您只需致电
即可dvc.arrayOfDictionaries = [myDictionary]
所以你永远不会关心arrayOfDictionaries
状态(如果它被初始化,如果它是空的或其他任何东西)
请查看表视图控制器中的viewDidLoad
和其他视图生命周期方法。您是否有可能在那里再次初始化阵列?