Ich habe zwei UITableViewControllers
und muss den Wert vom untergeordneten Ansichtscontroller mithilfe eines Delegaten an das übergeordnete Element übergeben. Ich weiß, was Delegierte sind und wollte nur ein einfach zu befolgendes Beispiel sehen.
Danke
ios
objective-c
iphone
delegates
jini
quelle
quelle
Antworten:
Einfaches Beispiel ...
Angenommen, der untergeordnete Ansichtscontroller hat eine
UISlider
und wir möchten den Wert des Schiebereglers über einen Delegaten an das übergeordnete Element zurückgeben.Deklarieren Sie in der Header-Datei des Controllers der untergeordneten Ansicht den Delegatentyp und seine Methoden:
ChildViewController.h
Rufen Sie in der Implementierung des Controllers für untergeordnete Ansichten die Delegatmethoden nach Bedarf auf.
ChildViewController.m
Deklarieren Sie in der Header-Datei des übergeordneten View Controllers, dass das
ChildViewControllerDelegate
Protokoll implementiert wird .RootViewController.h
Implementieren Sie in der Implementierung des übergeordneten Ansichtscontrollers die Delegatmethoden entsprechend.
RootViewController.m
Hoffe das hilft!
quelle
detailViewController.delegate = self;
(es ist im-tableView:didSelectRowAtIndexPath:
obigen Code-Snippet enthalten.Der folgende Code zeigt nur die grundlegende Verwendung des Delegatenkonzepts. Sie benennen die Variable und die Klasse gemäß Ihren Anforderungen.
Zuerst müssen Sie ein Protokoll deklarieren:
Nennen wir es MyFirstControllerDelegate.h
Importieren Sie die Datei MyFirstControllerDelegate.h und bestätigen Sie Ihren FirstController mit dem Protokoll MyFirstControllerDelegate
In der Implementierungsdatei müssen Sie beide Funktionen des Protokolls implementieren:
in Ihrem SecondController :
In der Implementierungsdatei von SecondController .
Hier ist der Wiki-Artikel über Delegierte.
quelle
Die folgende Lösung ist ein sehr einfacher und einfacher Ansatz zum Senden von Daten von VC2 an VC1 mithilfe eines Delegaten.
PS: Diese Lösung wurde in Xcode 9.X und Swift 4 erstellt
Deklarierte ein Protokoll und erstellte eine delegierte Variable in ViewControllerB
ViewControllerA bestätigt das Protokoll und erwartet, dass Daten über die Delegatmethode sendData empfangen werden
quelle
Sie müssen Delegaten und Protokolle verwenden. Hier ist eine Site mit einem Beispiel: http://iosdevelopertips.com/objective-c/the-basics-of-protocols-and-delegates.html
quelle