2016-08-07 19 views
-1

Guten Abend!TableViewCell Listener mit Swift

Ich habe eine spezielle Frage zu Xcode (Swift) und dem TabelView Layout.

Meine App hat bis jetzt 1 View in einem Container in diesem Container ist ein UITableViewController eingebettet, die eine schöne statische Tabellenansicht zeigt.

Mein Fehler ist, wie kann ich registrieren, wenn ein Benutzer auf eine dieser Tabellenansicht Zellen klicken?

Die Methode:

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    //CODE TO BE RUN ON CELL TOUCH 
} 

arbeitet nicht für mich - die Methode nicht aufgerufen wird, wird ein Alarm innerhalb dieses Verfahrens nicht gezeigt.

Vielleicht eine falsche Dateistruktur? In meinem Haupt-Storyboard habe ich eine Swift-Datei mit dem UITableViewController verbunden, der sich im Container des Hauptansicht-Controllers befindet. Code der Datei ist das Basic:

Wie kann ich registrieren, wenn ein Benutzer auf eine TableViewCell klickt? Zum Beispiel eine Warnung anzeigen?

Bitte helfen Sie mir, ich bin wirklich neu in iOS-Entwicklung.

Danke!

Hier sind zwei Bilder von meiner Projekt-Struktur:

storyboard-structure

tableView-structure

+0

I welcher View-Controller haben Sie den 'didSelectRowAtIndexPath' implementiert? Warum haben Sie eine Containeransicht und einen Tabellenansichtcontroller anstelle einer Tabellenansicht verwendet? – Paulw11

+0

Danke für Ihre Antwort! Ich implementiere die "Listener-Methode" im Test.Swift-Datei, die Datei, die mit dem UITableViewController verbunden ist. Das funktioniert nicht ... Ich verwende den externen Controller, weil ich ein statisches TableView mit Gruppen verwenden muss. – Waldi

+0

Haben Sie die benutzerdefinierte Unterklasse Ihres UITableViewControllers auf "Test" gesetzt? – Paulw11

Antwort

0

Ein wirklich dummer Fehler ... Der Code war absolut korrekt - das Problem lag in der main.swift Datei, der Datei im Container.

Oberhalb des Behälters ich den folgenden Code ein SearchBar und verwendet hinzugefügt haben, die Tastatur zu verstecken, indem außerhalb des searchbar klicken: https://stackoverflow.com/a/27079103/3849220

Dieser Code mein Touch Events in der ganzen Ansicht abgestürzt - „oben“ auch der Behälter ... disdispKeyboard() wurde vor der Funktion TableView aufgerufen.

@ Paulw11 Ein großes Dankeschön für Ihr Beispielprojekt! Es hilft mir sehr, die Logik zu verstehen und den Fehler zu suchen. Vielen Dank!

Ich ersetzte den Code und schreibe ein kleines eigenes Skript, das die Tastatur durch Klicken auf eine Schaltfläche "Fertig" ausblenden. Jetzt funktioniert es!

Danke an alle!

0

Eine funktionierender Tabellenansicht erfordert drei Tabellenansicht Methoden Datenquelle. Achte darauf, sie hinzuzufügen.

func numberOfSectionsInTableView(tableView: UITableView) -> return Int number of section 
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) ->return Int number of rows in section 
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> return UITableViewCell that populate the cell data 

hoffen, dass es helfen !!