gpt4 book ai didi

ios - 使用 UINavigationController 返回时是否有类似 prepareForSegue 的东西?

转载 作者:行者123 更新时间:2023-11-28 08:50:44 25 4
gpt4 key购买 nike

我的 ViewOne 中有一个数组,我使用 prepareForSegue 函数将其传递给 ViewTwo

当我删除 ViewTwo 中数组的数据并使用 NavigationController 上的后退按钮返回或向右滑动时,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)")
}
}
}

View 二:

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)。

最佳答案

在 Swift 中,数组是值类型而不是引用类型(参见 Apple Developer Blog entry ),所以当您将它“传递”给 view2 时,您实际上只是在制作一个副本。 View2 修改了副本,但原始文件保持不变。

关于ios - 使用 UINavigationController 返回时是否有类似 prepareForSegue 的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34274055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com