ios - How To Identify Which Button, Of Many, Triggered Single Storyboard Segue -
i have 77 buttons on 1 view. these 77 buttons in collection outlet. buttons wired trigger same segue. segue presents detailviewcontroller information passed button. need know button triggered segue know data pass detail controller.
i set tag in viewdidload method:
override func viewdidload() { super.viewdidload() self.containerview.backgroundcolor = uicolor.blackcolor() var count = 0 item in buttonoutlets { item.layer.cornerradius = 2.0 item.layer.borderwidth = 2.0 item.tag = count item.layer.bordercolor = uicolor.yellowcolor().cgcolor item.addtarget(self, action: selector("handlebuttonpress"), forcontrolevents: uicontrolevents.touchupinside) count = count + 1 println(item.tag) // prints correct tag numbers } self.fetchallobjects() } this prepareforsegue:
override func prepareforsegue(segue: uistoryboardsegue, sender: anyobject?) { var upcoming: itemdetail = segue.destinationviewcontroller as! itemdetail if (segue.identifier == "loaddetailview") { println(buttonoutlets[1].tag) // prints correct tag number let objectplace = sender?.tag upcoming.parseobject = collectionobjects[objectplace!] as? pfobject }
the answer lies in item.addtarget. action selector calls handlebuttonpress. original button press handler was:
func handlebuttonpress(sender: uibutton) { self.performseguewithidentifier("loaddetailview", sender: self) } what missing sender: sender:
func handlebuttonpress(sender: uibutton) { self.performseguewithidentifier("loaddetailview", sender: sender) } then add colon handlebuttonpress call:
item.addtarget(self, action: selector("handlebuttonpress:"), forcontrolevents: uicontrolevents.touchupinside)
Comments
Post a Comment