のための愚かな何かを準備でエラーが発生しましたが、私は単にシンプルperformSegueをスローし、多分セグエFUNC
@IBAction func requestPanel(_ sender: Any) {
performSegue(withIdentifier: "sendMail", sender: AnyObject)
}
を使用して単純な動きを任意のデータを渡すそして私ではないのViewControllerにtableviewControllerから移動しようとしていますsegue funcの準備に誤りがあります。
しかし、それは私の他のセグーとは何の関係がありませんか?
データがないため、セグに問題があることを理解しています。
ここで見ているように、セグエは上のセグエの準備です。
@IBAction func requestPanel(_ sender: Any) {
self.performSegue(withIdentifier: "sendMail", sender: AnyObject.self)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
var indexPath: IndexPath = self.tableView.indexPathForSelectedRow!
let desti = segue.destination as! DeviceDetailTableViewController
let selectedRecord = onlineDevices[indexPath.row]
let panelWidth = selectedRecord.object(forKey: "panelwidth") as? String
let panelHight = selectedRecord.object(forKey: "panelhight") as? String
let panelPitch = selectedRecord.object(forKey: "panelpitch") as? String
let panelPower = selectedRecord.object(forKey: "panelpower") as? String
let panelWeight = selectedRecord.object(forKey: "panelweight") as? String
let panelMaker = selectedRecord.object(forKey: "maker") as? String
let panelModel = selectedRecord.object(forKey: "model") as? String
desti.pawidth = panelWidth!
desti.pahight = panelHight!
desti.papitch = panelPitch!
desti.papower = panelPower!
desti.weight = panelWeight!
desti.maker = panelMaker!
desti.model = panelModel!
}
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return onlineDevices.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "DeviceCell", for: indexPath)
// Configure the cell...
let noteRecord: CKRecord = onlineDevices[(indexPath as IndexPath).row]
cell.textLabel?.text = noteRecord.value(forKey: "maker") as? String
cell.detailTextLabel?.text = noteRecord.value(forKey: "model") as? String
return cell
}
}
あなたが実行セグエメソッドを呼び出すたびに、それはセグエを作成しますあなたがセグをしたい新しいビューコントローラ。これが完了すると、システムはprepareを呼び出して、次のView Controllerにデータを渡す機会を与えます。あなたがここでデータを逃して、展開を強制すると、それを壊そうとするとクラッシュします。 – BennX
segueは、行を選択するのではなくボタンからトリガーされるので、選択した行を取得する前にsegue識別子を確認してください。 – vacawama
DO _NOT_コードの写真を表示します。 Show _CODE_。 – matt