Ich habe einen ViewController, der eine TableView enthält. Ich möchte in jeder Zelle einen roten Knopf haben, der etwas getan hat (sagen wir "Hallo" zum Test), oder wenn ich die Zelle irgendwo berühre, aber nicht auf dem Knopf, führe ich einen Übergang durch.Swift - Tastenaktion nicht ausgelöst in der Tabellenansicht Zelle
Aber selbst wenn ich den Knopf berühre, ist es das Segment, das durchführt. Ich habe versucht, einige Suche auf SF, aber keine der Fragen helfen mir ...
Ich weiß nicht, ob das ist üblich, aber wenn ich die Zelle berühren, wird die ganze Reihe weißer Hintergrund grau, auch der Hintergrund der roten Taste .
In Storyboard habe ich diese Zellhierarchie:
Die Interaktion mit dem Benutzer wird sowohl auf Zell- und Taste aktiviert.
In den Fragen, die ich fand, sagten sie, auf dem Zellensatz 'Zubehör' auf 'Enthüllungsanzeige', habe ich es getan, aber wenn es möglich ist, möchte ich es bei 'None' behalten. Auch ich eine benutzerdefinierte Klasse für die Zelle gesetzt, hier ist der Code:
class MyTableViewCell: UITableViewCell {
@IBOutlet weak var rentButton: UIButton? // I use this class for 2 tableview almost similar, but in the other I don't have the redButton, that's why I put an '?'
}
Ich habe auch die Delegierten und Datenquelle des Tableview zu meinem Viewcontroller, hier ist der Code meiner Ansicht-Controller:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! MyTableViewCell
cell.rentButton!.tag = indexPath.row
cell.rentButton!.addTarget(self, action: #selector(MyViewController.rent(_:)), forControlEvents: .TouchUpInside)
return cell
}
// Rent() is never called:
func rent(sender: UIButton) {
print("here \(sender.tag)")
}
EDIT: Die Lösung war, den Button aus der Conainer-Ansicht zu löschen!
Sie bewegen Dank. Aber es funktioniert immer noch nicht. :(Mein Übergang für jede Zelle geht nicht von Zelle, sondern von der ViewController. Ich habe Strg + Drag von der gelben Symbol auf der ersten VC auf die zweite VC. In der Tat wird die Methode rent() nie aufgerufen, es Führen Sie immer den Übergang ... – Kev
Können Sie versuchen, die Rent-Schaltfläche aus dem ContainerView in den ContentView zu verschieben? Erste Anlaufstelle sollte sein, dies richtig auszulösen –
Ich habe die Schaltfläche aus der Containeransicht verschoben und es funktioniert! Vielen Dank Du! – Kev