2017-02-05 3 views
1

Gibt es eine Chance, eine Ganzzahl in den IndexPath zu werfen?swift3 Darsteller int zu indexPath

Weil ich den Text aus der Zelle brauche, wenn ich den Knopf drücke. Oder kann ich einen String als Absender für den Button verwenden?

cell.uncheckbox.tag = indexPath.row as! IndexPath 

cell.uncheckbox.addTarget(self, action: #selector(ViewController.btnClicked), for: UIControlEvents.touchUpInside) 




func btnClicked(sender: UIButton) 
{ 

    let row = sender.tag 
    let cell = tableView.dequeueReusableCell(withIdentifier: "LabelCell", for: row) as! TableViewCell; 

    print("cellentext \(cell.textLabel?.text)") 
} 

Vielen Dank für Ihre Hilfe!

+0

Bitte überprüfen Sie den Einzug Ihres Code-Snippets oder Ausgabe. Es sieht irgendwie aus. Vielen Dank! – Kie

Antwort

4

Was Sie gerade tun, ist eine neue Zelle für die Zeile, in der sich die Schaltfläche befindet. Welches ist wahrscheinlich nicht das, was Sie brauchen.

let row = sender.tag 
let cell = tableView.dequeueReusableCell(withIdentifier: "LabelCell", for: row) as! TableViewCell; 

Was Sie wollen, ist die tag als Zeilenparameter in Ihrem IndexPath verwenden. Sie können Ihre eigenen IndexPath wie dieses Konstrukt, angenommen, Sie nur einen Abschnitt haben:

let indexPath = IndexPath(row: tag, section: 0) 

Und es dann benutzen, um Ihre aktuelle Zelle zu erhalten, indem die cellForRow(at: IndexPath) Methode Ihrer UITableView verwenden.

let cell = tableView.cellForRow(at: indexPath) 

Hoffe, dass hilft.

+1

vielen dank! –

+0

Sie sind herzlich willkommen! Ich bin froh zu helfen. – Kie