Delegate Funktion im SubView benutzen in MainView?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Delegate Funktion im SubView benutzen in MainView?

    Heyho Leute,

    wie man sieht hab ich verdammt viele Fragen xDD Ich hoffe das ich damit keinem auf die Eier gehe *hehe*

    Meine aktuelles Problem lautet wie folgt.

    Ich habe einen ViewController "MapViewController". Und ich habe eine UIView (MapView) Klasse mit einem MKMapView als SubView (Object). Die Delegate des MKMapView ist mit dem "MapView" verbunden. Das MapView erzeuge ich im Controller und füge es dem View des Controllers hinzu.

    Im Controller hab ich ein weiteres View - mein sogenanntes "MapMenu". Dort drint befindet sich eine UISegmentControl. Die Action der SegmentControl ist im Controller definiert.

    So als Vorab Info!!!

    Das Problem selber liegt darin, das die Segment Control 2 wesentliche Funktion trennt. Automatisch und Manuell. Was meine ich damit? Automatisch auf der Map einem Ziel folgen zB dem User oder Manuell falls der User sich gerade was auf der Karte anschaut (egal was). Ich habe einen NSTimer der regelmäßig die Objekte auf der Karte auffrischt (zB um diese zu verfolgen). Der Timer läuft eigentlich "immer". Auch wenn Manuell eingestellt ist. Das Problem was ich nun habe ist. Das ich abfragen muss 1. wann spielt der User an der Map rum (Manuell) und wann läuft das Automatische ab.

    Das würde auf 2 wege wohl gehen.

    1. Ich kriege irgendwie die Delegate funktion in den Controller (ich brauche sie aber auch im MapView).
    2. Ich kann im MapView einen Pointer auf den aktuellen Index der SegmentControl setzen, welcher automatisch aktualisiert wird, wenn der User die Map Bewegt. Hier ganz klar!!! "Wenn der User sie bewegt". Weil die Delegate Funktion ja auch ausgelöst wird, wenn das Programm automatisch einem Objekt folgt....

    Irgendwie....xD kA ich komm einfach net drauf. Brauche einen Gedankenanstoß von euch leute ;) Was habe ich übersehen???



    MfG

    Euer Nax!
    Meine Beiträge :whistling: stehen unter der Beerware Lizenz!
  • Nax schrieb:

    1. Ich kriege irgendwie die Delegate funktion in den Controller (ich brauche sie aber auch im MapView).

    Das Delegate sollte immer der Controller sein. Vom Controller kannst Du ja auf den MapView zugreifen, so dass die Delegatemethoden dann ihrerseits den MapView aktualisieren können.

    Nax schrieb:

    2. Ich kann im MapView einen Pointer auf den aktuellen Index der SegmentControl setzen, welcher automatisch aktualisiert wird, wenn der User die Map Bewegt. Hier ganz klar!!! "Wenn der User sie bewegt". Weil die Delegate Funktion ja auch ausgelöst wird, wenn das Programm automatisch einem Objekt folgt....

    Warum soll sich das Programm unterschiedlich verhalten, abhängig davon, ob der Nutzer oder das System die Karte bewegt?
    „Meine Komplikation hatte eine Komplikation.“
  • ramo schrieb:

    Ist es nicht möglich über " - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event " das Spielen des Users abzufangen ??

    Das mag möglich sein. Allerdings greifst Du damit dann in das Event-Handling eines Scrollviews ein und begibst Dich damit in Teufels Küche. Dafür solltest Du einen guten Grund haben.

    Wenn bei einem Programm durch die gleiche Ursache (Scrollen eines Views) ein unterschiedliches Verhalten ausgelöst werden soll, liegt in vielen Fällen ein konzeptioneller Denkfehler zu Grunde. Wenn Du den beseitigst vereinfachen sich häufig die anderen Probleme. Das muss zwar hier nicht so sein, mensch sollte es aber zuerst mal checken.
    „Meine Komplikation hatte eine Komplikation.“
  • hab es nun umgelagert - ich geb zwar dem Controller nicht die Delegate - aber dafür dem View die wichtigen Handler...

    Ich denke egal ob controller oder view....

    es geht einfach darum das eine Menu Steuerung nicht ausserhalb des Delegate handlers liegen sollte...aber danke...für die zugehörigkeit

    MfG

    Nax
    Meine Beiträge :whistling: stehen unter der Beerware Lizenz!
  • Nax schrieb:

    hab es nun umgelagert - ich geb zwar dem Controller nicht die Delegate - aber dafür dem View die wichtigen Handler...

    Ich denke egal ob controller oder view....

    es geht einfach darum das eine Menu Steuerung nicht ausserhalb des Delegate handlers liegen sollte...aber danke...für die zugehörigkeit

    Das ist nicht egal. Du verstößt gegen das MVC-Muster, wenn der View das Delegate ist. Diese unsaubere Trennung führt dann genau zu den Problemen, die Du hast.
    „Meine Komplikation hatte eine Komplikation.“