私はあるテーブルビューから別のビューにセグを実行しています。segueの後にviewDidLoad()が実行されない
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
NSLog("You selected cell number: \(indexPath.row)!")
self.performSegue(withIdentifier: "types", sender: productList[indexPath.row])
}
それは(私はストーリーボードに宣言した)のViewController
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()
}
})
}
のカスタムクラスでこれが起こっされる可能性がありますなぜ任意のアイデアを説明した新しいテーブルビューのviewDidLoad()
を実行する必要がありますか?
する必要がありますはパラメータ –
親パラメータはsegues送信者ではありませんしました'sender:productList [indexPath.row]' –
実際には、あなた自身のためにパラメータを使ってviewDidLoadという名前の関数を作成していて、どこにも呼び出さなかったので、動作しなかったと思います。 @sulthanが指摘したように、UIViewControllerのviewDidLoad()関数をオーバーライドしましょう。 2つのViewController間でデータを渡す必要がある場合は、 "prepareForSegue"を介してデータを渡す方法を学びます。 –