2017-02-15 5 views
2

zu übergeben Ich habe 2 VCs, einer von ihnen heißt HomeVC, der andere ist DetailVC. Ich habe eine Tabellenansicht auf HomeVC, die Zellen mit einem Label und einer Schaltfläche anzeigt. DetailVC hat nur ein Label. Ich zeige ein Array von Strings in der Tabellenansicht an, und wenn die Schaltfläche auf der Zelle angeklickt wird, möchte ich den Text in der Beschriftung zu dem DetailVC-Label tragen.Verwenden einer Schaltfläche in einer Zelle, um Daten in swift

Jetzt kann ich dies entweder mit didSelectRowAt-Methode oder mit IndexPathForSelectedRow in Prepare-Methode zu tun. Aber in beiden Fällen muss ich auf die Zelle selbst tippen, aber nicht auf die Schaltfläche.

Ich bin nur ein Anfänger in swift. Aber um das zu erklären, braucht man nicht viel Code. Also, wenn Sie können, erklären Sie bitte ausführlich.

Vielen Dank im Voraus. mit der Taste Tag d.h

func buttonAction(sender: UIButton) { 
    let data = tableArray[sender.tag] 
    // logic to pass present detailVC 
} 

Hoffnung

+2

fügen Sie ein Ziel zu Ihrer Schaltfläche in CellForRow –

Antwort

2

In cellForRowAt Ziel Schaltfläche d.h hinzufügen

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
     let cell = tableView.dequeueReusableCell(withIdentifier: "cellID", for: indexPath) 
     cell.button.tag = indexPath.row 
     cell.button.addTarget(self, action: Selector("buttonAction:"), for: .touchUpInside) 

     // other cell element setup 
     return cell 
    } 

Und bei Button-Aktion erhalten Sie das Element aus dem Array, das wird funktionieren !!

Verwandte Themen