Ich habe eine App, bei der Sie Daten in einem modalen UIViewController
an mehreren Orten in der App auswählen müssen. Stellen Sie sich folgendes vor: Sie möchten sehen, ob ein Restaurant über verfügbare Tische verfügt -> ein Modal UIViewController
erscheint, wo Sie ein Restaurant in einer Liste auswählen, das es ablehnt und die Daten an die präsentierende Ansicht zurückgibt. Sie möchten verwandte Restaurants sehen -> Ein Modal UIViewController
erscheint, wo Sie ein Restaurant in einer Liste auswählen, das es ablehnt und die Daten zurück zur präsentierenden Ansicht übermittelt. Usw.Präsentieren Sie UIViewController und geben Sie Daten an die präsentierende Ansicht zurück.
Jetzt könnte ich dies tun, indem Sie RestaurantViewController.delegate = self
in der präsentierenden Ansicht setzen. Ich könnte dann etwas wie [delegate pickedRestaurant:restaurant];
nennen, aber ich mag es nicht, wie ungenerisch das ist.
Gibt es eine andere Möglichkeit, eine UIViewController
mit einem Datenrückruf zu präsentieren?
Was meinst du damit, dass das Delegatenmuster "ungenerisch" ist? Genau dafür ist das Muster ausgelegt, um sicherzustellen, dass der vorgestellte View-Controller sich nur mit seiner eigenen Implementierung beschäftigt; Delegierte können dann auf diesen Rückruf nach Bedarf antworten, ohne die Verantwortlichkeiten des Kind-Controllers zu beeinflussen. – Stuart
Nun, @Stuart, was ich meinte war, dass ich den gleichen Code mehrmals implementieren muss. Aber nach eingehender Forschung stimme ich zu, dass dies die beste Option für mich ist. – user4992124