2017-05-23 3 views
0

Ich habe eine Tabellenansicht, wo auf Klick auf ein Label ich einen UIViewController aus Storyboard mit Popover-Methode anzeigen möchte. Ich habe folgenden Code in dem Hahn Erkenner SelektorPopUp kann nicht von UITableViewCell angezeigt werden

func setupItemNameTapRecognizer(_ label:UILabel) { 
    label.isUserInteractionEnabled = true 
    let tapRecog = UITapGestureRecognizer(target: self, action: #selector(self.actionItemNameTap(_:))) 
    label.addGestureRecognizer(tapRecog) 
} 
func actionItemNameTap(_ sender:UIView) { 
    print("item tap") 
    let indexPath = IndexPath(row: sender.tag, section: 0) 
    let cell = tableView.cellForRow(at:indexPath) 
    self.showPopOverBox(cell: cell!) 
} 

und folgenden Code in CellForRowAt Methode

let cell = tableView.dequeueReusableCell(withIdentifier: "ItemContentCell", for: indexPath) as! ItemContentCell 
     setupItemNameTapRecognizer(cell.itemName) 
     cell.itemName.tag = indexPath.row 

     return cell 

Jedes Mal, wenn ich auf dem Etikett klicken bekomme ich folgende Fehlermeldung ausgegeben, nicht immer, was ist falsch

[UITapGestureRecognizer-Tag]: nicht erkannter Selektor, der an Instanz 0x7fdc1867ee90 gesendet wurde 2017-05-23 17: 36: 23.871 InvoiceMaster [71236: 14670269] *** Beenden der App aufgrund einer nicht abgefangenen Ausnahme 'NSInvalidArgumentException', Grund: ‚- [UITapGestureRecognizer tag]: unerkannt

Antwort

1

jsut diese Methode wie unter

ändern
func actionItemNameTap(_ sender: UITapGestureRecognizer) { 
    // let view = sender.view; 
    // print("\(view?.tag)") 
    print("item tap") 
    let indexPath = IndexPath(row: (sender.view?.tag)!, section: 0) 
    let cell = tableView.cellForRow(at:indexPath) 
    self.showPopOverBox(cell: cell!) 
} 
+0

warum Sie den Code in beide Sprache geschrieben' UIView * view = sender.view; ' –

+0

@ Anbu.Karthik dont worry wir können immer die Antworten jedes anderen verbessern –

+0

sorry, ich habe das nicht bemerkt, mein Fehler. –

Verwandte Themen