UIButton innerhalb der Unterklasse UITableViewCell muss die Methode des übergeordneten Elements aufrufen

8

Entschuldigung, wenn die Antwort schon da ist, aber ich konnte sie nicht finden.

Ich habe die folgende Konfiguration: MainViewController, die eine große UITableView und CustomTableViewCell hat, die Unterklasse von UITableViewCell ist. Für jede Instanz von CustomTableViewCell wurde eine UIButton-Komponente zur Inhaltsansicht hinzugefügt (alles programmgesteuert).

Wenn die Schaltfläche in einer bestimmten Zelle gedrückt wird, möchte ich dafür die buttonPressed: -Methode in MainViewController aufrufen, und noch besser, sagen Sie mir den indexPath.section für die Zelle, die die gedrückte Schaltfläche enthält.

CustomTableViewCell hat keine NIB-Datei, alles programmgesteuert. In CustomTableViewCell.h erkläre ich:

%Vor%

Obwohl ich nicht (@property, @synthesize) es behalte. Die init-Methode für CustomTableViewCell.m liest sich so:

%Vor%

, aber ich möchte stattdessen die Methode "buttonPressed:" aufrufen, die in der Elternansicht existiert. Ich haue mich ein paar Stunden damit ab, also wäre ich dankbar, wenn mir jemand meine eigene Dummheit ersparen könnte. Danke!

    
PengOne 22.12.2010, 14:18
quelle

1 Antwort

16

Dann gehst du mit dem Delegatenmuster!

Definieren Sie ein Protokoll, das Ihr Controller respektiert, und einen Delegierten vom Typ id in Ihrer Zelle. Vergessen Sie nicht, diesen Delegaten für jede Zelle zuzuweisen, die Sie mit Ihrem Controller erstellen.

Protokoll:

%Vor%

Eigenschaft in Ihrer Zellenschnittstelle:

%Vor%

Synthetisieren Sie Ihre Eigenschaft mit:

%Vor%

Implementieren Sie das Delagate in Ihrem Controller:

%Vor%

Setzen Sie den Delegaten beim Erstellen Ihrer Zellen (von Ihrem Controller)

%Vor%

Dann von der Methode, die in Ihrer Zelle aufgerufen wird, wenn Sie auf die Schaltfläche klicken:

%Vor%     
VdesmedT 22.12.2010, 14:23
quelle

Tags und Links