gpt4 book ai didi

swift - 从第二个 View Controller 更新 TableView

转载 作者:行者123 更新时间:2023-11-30 10:31:11 24 4
gpt4 key购买 nike

我有一个名为 Deck 的类,它有一个名为卡片的结构数组的属性。我有一个表格 View 设置为按名称显示每个牌组。我还有一个 View Controller 来输入用于添加新牌组或保存旧牌组的名称。添加新牌组时它工作正常,但是每当我更新旧牌组时,它不是简单地更新名称,而是创建一个精确的副本并将其添加到表格 View 中。

这是我从 DeckEditViewController 进行转场的准备:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
super.prepare(for: segue, sender: sender)
//configure the destination view controller only when the save button is pressed.
guard let button = sender as? UIBarButtonItem, button == saveButton else {
print("The save button was not pressed, canceling")
return
}

let name = deckNameTextField.text ?? ""
let cards = deck?.cards

deck = Deck(name: name, cards: cards ?? [])
}

这是我在 TableView Controller 中的放松:

@IBAction func unwindToDeckList(sender: UIStoryboardSegue) {
if let sourceViewController = sender.source as? DeckEditViewController, let deck = sourceViewController.deck {

if let selectedIndexPath = tableView.indexPathForSelectedRow {
//Update existing deck
decks[selectedIndexPath.row] = deck
tableView.reloadRows(at: [selectedIndexPath], with: .none)
print("Updating existing deck")
}
else {
//add new deck
let newIndexPath = IndexPath(row: decks.count, section: 0)

decks.append(deck)
tableView.insertRows(at: [newIndexPath], with: .automatic)
print("Adding a new deck")
}
}
}

如果有人至少可以帮助我指出正确的方向,我就迷路了。提前致谢。

最佳答案

您可以根据您的要求使用自定义协议(protocol) - 委托(delegate),也可以使用通知中心传递数据。如果您是新手,请查看这些网站以了解有关代表的更多信息。

  1. Delegation-Pattern
  2. Understanding Delegates and Delegation
  3. Implementing delegates

您可以检查如何使用委托(delegate)传递数据 Youtube还。我希望这对您有所帮助。

关于swift - 从第二个 View Controller 更新 TableView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59187481/

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