【发布时间】:2015-12-14 18:27:34
【问题描述】:
我的ViewOne 中有一个数组,我使用prepareForSegue 函数将其传递给ViewTwo。
当我删除 ViewTwo 中的数组数据并使用 NavigationController 上的后退按钮返回或向右滑动时,ViewOne 中的数组仍然有所有数据并且不知道我删除了一些东西其中。
这个问题有解决办法吗?
ViewOne:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if(segue.identifier == "submitSegue") {
let shoppingCart = segue.destinationViewController as! ShoppinCartScreen;
if(artikel != nil) {
shoppingCart.alleArtikel = alleArtikel
print("Test: \(artikel?.artikelnummer)")
}
}
}
视图二:
var alleArtikel = [Artikel]()
override func viewDidLoad() {
super.viewDidLoad()
}
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return alleArtikel.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("ShoppingCartScreenCell", forIndexPath: indexPath) as!ShoppingCartScreenCell
let eintrag = alleArtikel[indexPath.row]
cell.previewImage.image = eintrag.foto
cell.artikelNummer.text = eintrag.artikelnummer
return cell
}
override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
if(editingStyle == .Delete) {
alleArtikel.removeAtIndex(indexPath.row)
tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
}
}
我有一个主视图 (ViewOne) 和一个 TableView(ViewTwo)。
【问题讨论】:
-
首先你真的需要展示一些代码。你在使用表格视图吗?您如何将数据保存在 ViewTwo 的数组中?如果您使用的是 tableview,您是否正在执行 tableview 刷新?
-
如果 ViewOne 是一个 tableview - 你应该刷新它或者你可以阅读 Unwind segues。
-
我已经添加了一些代码,希望它可以帮助你帮助我。在我的 ViewTwo 中,我使用的是 TableView。不,我没有执行 tableview 刷新。
-
不太确定你想做什么,但看看我不久前发布的this answer,它可能会让你开始。
标签: ios swift segue unwind-segue