2016-05-06 3 views
0

私は、テーブルビューに結び付けられたセグを持っています。どのセルが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) 
} 
+1

'tableView.reloadData()'を呼び出すと、すべてのセルがリロードされ、表示セルごとに 'cellForRowAtIndexPath:'が呼び出されます。あなたは正確に何をしようとしていますか? – EmilioPelaez

+0

cellForRowAtIndexPathは呼び出さないでください。システムは、テーブルビューを更新する必要があるときにそのメソッドを呼び出します。セグをトリガーする前にテーブルビューを更新したいのですか?高いレベルで何をしようとしているか教えてください。 –

+0

私は、クリックされたセルに基づいて新しいViewControllerにデータを表示しようとしています。セルがクリックされるたびに2つのクラス間でデータを転送しています。しかし、私がセルをクリックすると、prepareForSegueが変更を転送する必要がある値の前に呼び出されます(したがって、値が正しくありません)。 –

答えて

0

使用tableView.reloadData()あなたが全体のテーブルビューをリロードしたい場合は、あなたがセル使用FUNC名tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)に押した後にビューコントローラに行きたい場合。

0

"prepareForSegueでtableView.indexPathForSelectedRow()を使用すると、選択したセルのインデックスを取得してデータを取得できます。コメントのdanによる解決。

+0

実際の質問は「私はテーブルビューに繋がれたセグを持っています。どのセルが 'prepareForSegue'でタップされたのか把握して、そのセルの情報を抽出して宛先ビューコントローラに渡すことができます。私がする?"元の質問を編集して、求めていたことを明確にする必要があります。 –

関連する問題