Hallo nochmal,
Folgendes ist im Viewcontroller:
Alles anzeigen
Obiges DrawLine malt eine schöne rote Linie ins drawImage. Das funktioniert soweit. Anschließend übergebe ich den Inhalt in ein Array in Richtung AppDelegate, damit es das in die Datenbank speichert. Klappt auch. Was auch noch klappt, ist das Auslesen (Danke an Euch, siehe meine Anfängerfrage von gestern) und die Übergabe zurück an den Viewcontroller.
Was NICHT klappt ist, dass das drawImage.image durch das neue Image ersetzt wird beim Laden.
Es klappt auch nicht, wenn ich beispielsweise einfach eine png-Datei von Platte lade und sageUIImage *cursor2 = [UIImage imageNamed:@"test.png"];
[drawImage.Image = cursor2];
Die Frage ist: Wieso.
drawImage kann - wie oin drawLine - ja direkt im Viewcontroller angesprochen und auch verändert werden. Wieso kann ich dann nicht das Bild ändern, wenn der Aufruf vom AppDelegate kommt?
Weiss das jemand? setNeedsDisplay etc. habe ich bereits probiert, scheiter aber kläglichst
Danke!
Folgendes ist im Viewcontroller:
Quellcode
- - (void) drawLine {
- UIGraphicsBeginImageContext(drawImage.frame.size);
- [drawImage.image drawInRect:CGRectMake(0, 0, drawImage.frame.size.width, drawImage.frame.size.height)];
- CGContextRef ctx = UIGraphicsGetCurrentContext();
- CGContextSetLineCap(ctx, kCGLineCapButt);
- CGContextSetLineWidth(ctx,2.0);
- CGContextSetRGBStrokeColor(ctx, 1.0, 0.0, 0.0, 1.0);
- CGContextBeginPath(ctx);
- CGContextMoveToPoint(ctx, punkt1.x-35,punkt1.y-15);
- CGContextAddLineToPoint(ctx, punkt2.x-35,punkt2.y-15);
- CGContextStrokePath(ctx);
- drawImage.image = UIGraphicsGetImageFromCurrentImageContext();
- UIGraphicsEndImageContext();
- //Inhalt ins Array für DB
- iCaromPoolTabAppDelegate *mainDelegate = (iCaromPoolTabAppDelegate *)[[UIApplication sharedApplication] delegate];
- NSData *imgData=UIImagePNGRepresentation(drawImage.image);
- mainDelegate.linienbildarray = imgData;
- }
- -(void) aendereBild: (NSData*)bildngage {
- UIImage *uiimageAusData = [UIImage imageWithData: bildngage];
- drawImage.image = uiimageAusData;
- }
Obiges DrawLine malt eine schöne rote Linie ins drawImage. Das funktioniert soweit. Anschließend übergebe ich den Inhalt in ein Array in Richtung AppDelegate, damit es das in die Datenbank speichert. Klappt auch. Was auch noch klappt, ist das Auslesen (Danke an Euch, siehe meine Anfängerfrage von gestern) und die Übergabe zurück an den Viewcontroller.
Was NICHT klappt ist, dass das drawImage.image durch das neue Image ersetzt wird beim Laden.
Es klappt auch nicht, wenn ich beispielsweise einfach eine png-Datei von Platte lade und sageUIImage *cursor2 = [UIImage imageNamed:@"test.png"];
[drawImage.Image = cursor2];
Die Frage ist: Wieso.
drawImage kann - wie oin drawLine - ja direkt im Viewcontroller angesprochen und auch verändert werden. Wieso kann ich dann nicht das Bild ändern, wenn der Aufruf vom AppDelegate kommt?
Weiss das jemand? setNeedsDisplay etc. habe ich bereits probiert, scheiter aber kläglichst
Danke!