eigenen Segue für jede Zelle im TableView

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • eigenen Segue für jede Zelle im TableView

    Hallo liebe Profis,

    Ich hab ein TableView mit mehreren Zellen, wo ich gern möchte das wenn man Zelle "Main" klickt MainViewController aufgerufen wird und bei Zelle "Hipped" dann HippedViewController usw.

    Wie unter scheide ich in dem Codesnipped:


    C-Quellcode

    1. override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    2. let cell = tableView.dequeueReusableCell(withIdentifier: "Cell1", for: indexPath)
    3. let celltitle = cells[indexPath.row]
    4. cell.textLabel?.text = "\(celltitle)"
    5. return cell
    6. }
    welche Zelle geklickt wird und somit der entsprechende ViewController aufgerufen wird. Im Storyboard hab ich im TableView jeweils die Zellen erstellt und mit einem eigenen Identifier benannt und von jeder Zelle ein Segue gezogen zum entsprechenden View und wieder benannt.

    brauch ich da noch prepareForSegue) (wobei ich aber keine Daten übergeben möchte) und didSelectRowAtIndexPath?

    Danke schonmal für eure hilfe, ein tutorial zum selbsterarbeiten würde auch super sein, nur bitte nicht auf die Developerseite english ist nicht gerade meine Stärke :S

    Mit freundlichem Gruß
    matze
  • didSelectRowAtIndexPath wird beim Klick auf eine Zelle aufgerufen, dort kannst du dann selbst

    z.B. die Segues aufrufen

    Quellcode

    1. performSegue(withIdentifier: "MakeXcodeGreatAgain", sender: nil)
    aufrufen.

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) kannst dir sparen, wenn du mit den Destinationcontrolllern nichts machen möchtest.
  • Danke an @matz für deine Hilfestellung!

    Mit zusätzlich ein wenig Google bin ich dann zu dem Ergebnis gekommen:

    Quellcode

    1. override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    2. let row = indexPath.row
    3. switch (row) {
    4. case 0:
    5. performSegue(withIdentifier: "main", sender: nil)
    6. case 1:
    7. performSegue(withIdentifier: "hipped", sender: nil)
    8. case 2:
    9. performSegue(withIdentifier: "hipp", sender: nil)
    10. case 3:
    11. performSegue(withIdentifier: "arrangement", sender: nil)
    12. default:
    13. print("Should not happen!")
    14. break
    15. }
    16. }
    Alles anzeigen