tableview - How to send didSelectRowAtIndexPath back to view controller in swift -
tableview - How to send didSelectRowAtIndexPath back to view controller in swift -
i have 1 viewcontroller , 1 tableviewcontroller in swift. can send nsmutablearray viewcontroller populate tableviewcontroller using segue. not know how send selected row view controller. code far:
override func tableview(tableview: uitableview, didselectrowatindexpath indexpath: nsindexpath) { println("you selected cell #\(indexpath.row)!") // missing code sending selected row self.dismissviewcontrolleranimated(true, completion: nil) }
any ideas?
you can utilize delegation pattern. create protocol:
protocol mydatadelegate { didselectrow(row: nsindexpath, data: mydata) }
in table controller, add together property:
var mydatadelegate: mydatadelegate?
and in didselectrowatindexpath
phone call delegate method:
override func tableview(tableview: uitableview, didselectrowatindexpath indexpath: nsindexpath) { println("you selected cell #\(indexpath.row)!") allow info = getdataforrow(indexpath) // <== need implement self.mydatadelegate?.didselectrow(indexpath, data: data) self.dismissviewcontrolleranimated(true, completion: nil) }
next, in main view controller:
implementmydatadelegate
protocol implement mydatadelegate.didselectrow method right before presenting table controller (or after creating it, if manually it), set mydatadelegate
property of table controller self this way, when row selected in table controller, didselectrow
method called on main view controller, can whatever need index path and/or data.
of course of study sense free alter didselectrow
signature (use indexpath, or row index, or without data, etc.)
swift tableview
Comments
Post a Comment