gpt4 book ai didi

ios - viewDidLoad() 在 segue 之后没有运行

转载 作者:行者123 更新时间:2023-11-28 15:29:43 27 4
gpt4 key购买 nike

我正在执行从一个表格 View 到另一个表格 View 的转场。

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
NSLog("You selected cell number: \(indexPath.row)!")
self.performSegue(withIdentifier: "types", sender: productList[indexPath.row])
}

它应该运行新 TableView 的 viewDidLoad(),由 ViewController 的自定义类(我已经在 Storyboard 中声明)描述

func viewDidLoad(parent: String) {
print("This should print")
super.viewDidLoad()
//self.typeTableView.delegate = self
//self.typeTableView.dataSource = self

//Set reference
ref = Database.database().reference()
//Retrieve posts
handle = ref?.child(parent).observe(.childAdded, with: { (snapshot) in
let product = snapshot.key as? String
if let actualProduct = product
{
self.productList.append(actualProduct)
self.typeTableView.reloadData()
}

})


}

知道为什么会发生这种情况吗?

最佳答案

将导航 Controller 嵌入到目标 Controller 并使用标识符 types 从当前 TableView 单元格到它进行 segue。然后在你的之后添加下面的方法 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {}

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "types" {
if let indexPath = tableView.indexPathForSelectedRow {
let object = productList[indexPath.row] as! yourProductType
let controller = (segue.destination as! UINavigationController).topViewController as! YourDestinationViewController
controller.yourProductProperty = object
}
}
}

确保在目标 Controller 中声明 yourProductProperty,以便您可以访问其中的当前产品对象。

关于ios - viewDidLoad() 在 segue 之后没有运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44857959/

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