私は、テーブルビューに結び付けられたセグを持っています。どのセルがprepareForSegueでタップされたのか把握する必要があるので、そのセルの情報を抽出して宛先ビューコントローラに渡すことができます。それ、どうやったら出来るの?cellForRowAtIndexPathの後にswift call prepareForSegue
編集: コード:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
print ("preparingForSeque...")
if (segue.identifier == "quoteView") {
let svc = segue.destinationViewController as! QuoteViewController
svc.category = clickedCategory
print ("svc.category is now " + clickedCategory)
print ("Preparing for transfer to a quoteView")
}
}
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
clickedCategory = categoryArray[indexPath.row]
print ("cell clicked, clickedCategory is now " + clickedCategory)
}
'tableView.reloadData()'を呼び出すと、すべてのセルがリロードされ、表示セルごとに 'cellForRowAtIndexPath:'が呼び出されます。あなたは正確に何をしようとしていますか? – EmilioPelaez
cellForRowAtIndexPathは呼び出さないでください。システムは、テーブルビューを更新する必要があるときにそのメソッドを呼び出します。セグをトリガーする前にテーブルビューを更新したいのですか?高いレベルで何をしようとしているか教えてください。 –
私は、クリックされたセルに基づいて新しいViewControllerにデータを表示しようとしています。セルがクリックされるたびに2つのクラス間でデータを転送しています。しかし、私がセルをクリックすると、prepareForSegueが変更を転送する必要がある値の前に呼び出されます(したがって、値が正しくありません)。 –