ios - How to know the sender's identifier in Swift -
i have 2 uilabels 2 uitapgesturerecognizers in uitableviewcell.
cell.username.tag = indexpath.row cell.shareduser.tag = indexpath.row let tapgesturerecognizer2 = uitapgesturerecognizer(target:self, action:"gotoprofil:") let tapgesturerecognizer3 = uitapgesturerecognizer(target:self, action:"gotoprofil:") cell.username.userinteractionenabled = true cell.username.addgesturerecognizer(tapgesturerecognizer2) cell.shareduser.userinteractionenabled = true cell.shareduser.addgesturerecognizer(tapgesturerecognizer3) func gotoprofil (sender: anyobject!) { self.performseguewithidentifier("gotoprofilsegue", sender: sender) } i'm using segue push uiviewcontroller, , i'm overriding preparesegue function send needed information corresponding sender tag.
override func prepareforsegue(segue: uistoryboardsegue, sender: anyobject!) { let profilview = segue.destinationviewcontroller as! profil profilview.hidesbottombarwhenpushed = true profilview.title = posts[sender.view!.tag].user?.objectforkey("name") as? string profilview.user = posts[sender.view!.tag].user } my problem want know uilabel pressed, knowing i'm using tag.
your gotoprofile: function should written properly. parameter isn't "sender", it's gesture recognizer.
func gotoprofil (gesturerecognizer: uitapgesturerecognizer) { } from there, can determine label using view property of gesture recognizer.
but seem have 2 conflicting requirements. want know of 2 labels tapped , want know row label in.
normally use label's tag know of 2 labels tapped. using tags track row.
the solution recommend use tag differentiate 2 labels. can calculate row based on frame of label.
see the following answer sample code translates frame of cell's subview cell's indexpath.
Comments
Post a Comment