Erste drücken einer Taste von einem custom UITableViewCell-button
Habe ich ein Projekt mit einem custom UITableViewCell (cell.h/.m/.xib), 2 labels (labelMain/labelSub), und 2 Schaltflächen (buttonName/buttonInfo), die mit 2 Aktionen (showName/showInfo).
Was ich tun möchte, ist in der Lage sein, um Zugriff auf die 2 Aktionen in meinen Projekten Haupt-viewcontroller, so dass, wenn showName gedrückt wird, wird ein textfield.text in der viewcontroller (nicht in der Zelle) ist festgelegt, dass bestimmte Zelle labelMain.text.
Hoffe das macht Sinn. Mein problem ist, dass wenn ich Schreibe, die Aktion (showName) in der Zelle.m, ich kann nicht auf das textfield von meinem Haupt-viewcontroller. Auf der anderen Seite, wenn ich Schreibe, die Aktion in meiner viewcontroller, wie weiß ich, welche Taste im inneren der Zelle wird abgehört?
Hoffe, das macht Sinn...
- haben Sie versucht, vorbei an einem schwachen Verweis auf das Etikett um die Zelle? d.h. die Zelle.h: @property (nonatomic, assign) id textfield; schreiben Sie dann die Aktion auf die Zelle.m.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
tag
können Sie ermitteln, welche Taste in welcher Zelle ist ausgeschöpft.---------------- BEARBEITEN -------------
Wenn Sie brauchen, um zu wissen, welche Taste gedrückt wird, basierend auf Zeile & Abschnitt, können Sie versuchen, diese unten. (in
cellForRowAtIndexPath:
Methode)Wenn die Taste bei
Einschränkung, Zeile kann nicht mehr als 99. und NICHT auf einen positiven tag für die andere Sicht. wenn Sie verwenden müssen tag, versuchen Sie, negative. (-1, -9, -100).
also von hier aus, können Sie berechnen, hintere Reihe & Abschnitt indexPath. mit dieser :
wie zu verwenden :
Versuchen, diese in viewController.m-Datei in
cellForRowAtIndexPath
MethodeSchlage ich delegieren(Protokoll) - Methode für diese. Sie werden die volle Kontrolle auf die Schaltfläche -, Zell-und des view-Controllers. Und es ist sehr einfach zu
Ist die einfachste Lösung meiner Meinung nach:
In Ihrem
CustomCell.h
:In Ihrem
CustomCell.m
erstellen derIBAction
und verbinden Sie es mit IhremUIButton
:Dann in der
ViewController.m
wo IhrUITableView
verwaltet :Versuchen, um die Schaltfläche zu erstellen, die dynamisch mit Ihren Methoden in den gleichen controller. Tun Sie dies in
cellForRowAtIndexPath:
Methode: