デリゲートメソッドがあります。テーブルビューのボタンを押すと別のビューコントローラとデータを渡しますが、動作していないようです。テーブルビューセル内で分割するメソッドを委譲する
func goToVC(uid: String) { //delegate method
performSegue(withIdentifier: "showVC", sender: self) //Do I need this
}
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
performSegue(withIdentifier: "showVC", sender: self)
self.tableView.deselectRow(at: indexPath, animated: true)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "showVC" {
if let indexPath = tableView.indexPathForSelectedRow {
let guestVC = segue.destination as! GuestViewController
guestVC.ref = userArray[indexPath.row].ref
}
}
ありがとうございます。新しいView Controllerにリダイレクトすると、黒い画面が表示されます(エラーは発生しません)。これを解決する最良の解決策は何ですか? –
デリゲートが正しく接続されているようです。まず、 'navigationController?.pushViewController(destination、animated:true)'を削除し、単に 'print(" great success ")'に出力することで確認してください。デリゲートが実際に動作している場合は、View BuilderをInterface Builderで通常どおりに操作します。私が与えた例はプログラマチックなアプリケーションですが、概念の変更はありません。 – slickdaddy
うーん...デリゲートは「大成功」をプリントアウトしているようだ。デリゲート内の別のView Controllerにプッシュする方法はありますか? –