gpt4 book ai didi

swift - numberOfRowsInSection 错误

转载 作者:行者123 更新时间:2023-11-28 15:07:38 24 4
gpt4 key购买 nike

我得到了一个 nil,我不知道为什么。每次我选择 tableViewController1 并执行 segue 时,它​​都会崩溃并将错误发送给我 tableViewController2。我设置标识符并将类设置为 Storyboard中的每个 tableViewController。我想要做的是将数据从 tableViewController1 传递到 tableViewController2

这是来自 tableViewController1

 override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let magazines = MagazineTableViewController()
magazines.customInit(magazinesindex: indexPath.row, title: topics[indexPath.row])
self.performSegue(withIdentifier: "company", sender: nil)
tableView.deselectRow(at: indexPath, animated: true)
}

这是tableViewController2

let MagazinesData = [//an array containing arrays of magazines]
var magazinesIndex: Int!

override func viewDidLoad() {
super.viewDidLoad()

}

func customInit(magazinesindex: Int, title: String) {
self.magazinesIndex = magazinesindex // this is where the error is
self.title = title
}

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return MagazinesData[magazinesIndex].count
}

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! MagazineTableViewCell
cell.magazineTitle?.text = MagazinesData[magazinesIndex][indexPath.row]

return cell
}

最佳答案

抱歉,您的做法完全错误。

不是创建 MagazineTableViewController 的新实例,它等于 segue 的目标 Controller ,您必须实现 prepare(for segue 并将数据传递给 segue 的 destination 属性。

  • didSelectRowAt更改为

    override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    self.performSegue(withIdentifier: "company", sender: indexPath)
    tableView.deselectRow(at: indexPath, animated: true)
    }
  • 像这样实现prepare(for segue

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier.rawValue == "company" {
    let destinationController = segue.destination as! MagazineTableViewController
    let indexPath = sender as! IndexPath
    destinationController.customInit(magazinesindex: indexPath.row, title: topics[indexPath.row])

    }
    }

关于swift - numberOfRowsInSection 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48244921/

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