Anfängerfrage :)

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

  • Anfängerfrage :)

    Hallo zusammen,

    ich habe eine Frage zum Thema "Ändern von Bildern in Views" über AppDelegate -> Viewcontroller

    Problem wie folgt:

    In meinem AppDelegate lese ich eine Datenbank aus, die mir u.a. ein NSData mit Blobinhalt (Bild) zurückliefert. Gespeichert in NSData *blobbild

    Jetzt habe ich einen Viewcontroller, der wiederum ein UIImageView hat, dessen IMAGE ich ersetzen möchte.

    Ein simples viewcontroller.uiimageview.image = blobbild klappt natürlich nicht, ist mir auch klar.

    Jetzt wollte ich schlau sein, habe im ViewController eine Methode gebaut:

    Quellcode

    1. -(void)aenderBild{
    2. drawimage.image = blobbildvomappdelegate;
    3. }


    Woran es mir jetzt hapert, ist a) die Parameterübergabe aus dem AppDelegate (was ja irgendwie wie [viewcontroller aenderbild(blobbild)] aussehen muss, und wie ich die Methode überhaupt dem AppDelegate bekanntmache.

    Ich weiß, es ist mal wieder eine Anfängerfrage, aber ich hänge hier echt fest :(

    Danke. Ich weiß, ihr seid gut :)
  • Also ich gehe mal davon aus, dass ein viewbased-Template als Projektvorlage verwendet wurde. Dann sollte im AppDelegate eine Referenz zum ViewController vorhanden sein.
    Dann reicht es die neue Methode im ViewController.m zu implementieren und in der ViewController.h die Methoden Signatur anzugehen. Anschließend sollte es kein Problem sein, aus dem AppDelegate das Bild an den ViewController mittels [viewController aendereBild:param] zu übergeben.

    ViewController.h

    Quellcode

    1. -(void) aendereBild: (NSData*)blobbild;


    ViewController.m

    Quellcode

    1. -(void) aendereBild: (NSData*)blobbild {
    2. UIImage* uiimageAusData = [UIImage imageWithData: blobbild];
    3. drawimage.image = uiimageAusData
    4. }


    AppDelegate.m

    Quellcode

    1. [viewController aendereBild: blobbild];