Frage

Ich bin neu in iPhone Dev, scheint nicht wirklich delegieren Dinge verstehen. Könnten wir setzen MapKit Ansicht und Tableview zusammen in einer Ansicht?

Ich suchte über, und jemand sagte, dass wir nicht mehr als einen Delegierten in einem Viewcontroller verwenden können. Wie ich weiß MapKit erfordern MKMapViewDelegate und Tableview UITableViewDelegate benötigen, bin ich richtig bis zu diesem Punkt? Dann bedeutet es, können wir setzen MapKit und Tableview nicht zusammen in einer Ansicht?

Die Dinge, die ich auch verwirrt machen, habe ich einfache Anwendung, die Verwendung Textview und MapKit zusammen. Ich gehe nur MKMapViewDelegate zu View-Controller. Aber auch Textview Delegierten erfordern die Tastatur ein textFieldShouldReturn zu schließen. So schaffe ich den Delegaten aus IB-Datei zu verknüpfen, aber did't UITextFieldDelegate zu View-Controller übergeben. Und es funktioniert. Was ist der Unterschied, wenn wir die Delegierten mit IB oder übergeben Sie die Delegierten param-View-Controller verbinden?

Danke

War es hilfreich?

Lösung

Eine Ansicht Controller kann ein Delegierter sein sowohl für eine Kartenansicht und eine Tabellenansicht. Ein Objekt wird ein Delegat einfach durch die Methoden des Delegierten-Protokoll implementiert, in diesem Fall, dass MKMapViewDelegate und UITableViewDataSource ist.

Ein Objekt kann eine beliebige Anzahl von Protokollen implementieren. Sie sagen dem Compiler, dass Instanzen eines Protokolls durch Zugabe zu der Schnittstelle implementieren:

@interface MyObject : NSObject <UITableViewDataSource, MKMapViewDelegate>
{
    ...

Es gibt keinen signifikanten technischen Unterschied zwischen einen Delegierten in IB Einstellung und im Code. Ich rate würde sie in IB einstellen, weil IB mit der Menge an Code reduziert Sie daher die Möglichkeit, Ihr Code andernfalls Schreib reduziert wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top