Note that there are some explanatory texts on larger screens.

plurals
  1. POPass UIimage drawing to another viewController
    primarykey
    data
    text
    <p>Im new to the iOS development and searched before posting, but couldn't figure out how to make the image passing work at all in my project. I need to pass the UIimage that the user drew from DrawViewController to the the Draw2viewController.`#import </p> <pre><code>//DrawViewController.h @interface DrawViewController : UIViewController { CGPoint lastPoint; CGFloat red; CGFloat green; CGFloat blue; CGFloat brush; CGFloat opacity; BOOL mouseSwiped; } @property (weak, nonatomic) IBOutlet UIImageView *tempDrawImage; @property (weak, nonatomic) IBOutlet UIImageView *mainImage; - (IBAction)pencilPressed:(id)sender; - (IBAction)eraserPressed:(id)sender; @property (weak, nonatomic) IBOutlet UILabel *Sentence1; @property (weak, nonatomic) IBOutlet UIButton *Done; @end` </code></pre> <p>------------------DrawViewController.m------------------</p> <pre><code>#import "DrawViewController.h" #import "Draw2ViewController.h" #import "SentenceViewController.h" @interface DrawViewController () @end @implementation DrawViewController - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self; } - (void)viewDidLoad { red = 0.0/255.0; green = 0.0/255.0; blue = 0.0/255.0; brush = 10.0; opacity = 1.0; [super viewDidLoad]; // Do any additional setup after loading the view. Draw2ViewController *view2 = [[Draw2ViewController alloc] init]; view2.myImage = _mainImage; _Sentence1.text = _SentStr; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - (IBAction)pencilPressed:(id)sender { UIButton * PressedButton = (UIButton*)sender; switch(PressedButton.tag) { case 0: red = 0.0/255.0; green = 0.0/255.0; blue = 0.0/255.0; break; case 1: red = 105.0/255.0; green = 105.0/255.0; blue = 105.0/255.0; break; case 2: red = 255.0/255.0; green = 0.0/255.0; blue = 0.0/255.0; break; case 3: red = 0.0/255.0; green = 0.0/255.0; blue = 255.0/255.0; break; case 4: red = 102.0/255.0; green = 204.0/255.0; blue = 0.0/255.0; break; case 5: red = 102.0/255.0; green = 255.0/255.0; blue = 0.0/255.0; break; case 6: red = 51.0/255.0; green = 204.0/255.0; blue = 255.0/255.0; break; case 7: red = 160.0/255.0; green = 82.0/255.0; blue = 45.0/255.0; break; case 8: red = 255.0/255.0; green = 102.0/255.0; blue = 0.0/255.0; break; case 9: red = 255.0/255.0; green = 255.0/255.0; blue = 0.0/255.0; break; } } - (IBAction)eraserPressed:(id)sender { red = 255.0/255.0; green = 255.0/255.0; blue = 255.0/255.0; opacity = 1.0; } - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { mouseSwiped = NO; UITouch *touch = [touches anyObject]; lastPoint = [touch locationInView:self.view]; } - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { mouseSwiped = YES; UITouch *touch = [touches anyObject]; CGPoint currentPoint = [touch locationInView:self.view]; UIGraphicsBeginImageContext(self.view.frame.size); [self.tempDrawImage.image drawInRect:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y); CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), currentPoint.x, currentPoint.y); CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound); CGContextSetLineWidth(UIGraphicsGetCurrentContext(), brush ); CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), red, green, blue, 1.0); CGContextSetBlendMode(UIGraphicsGetCurrentContext(),kCGBlendModeNormal); CGContextStrokePath(UIGraphicsGetCurrentContext()); self.tempDrawImage.image = UIGraphicsGetImageFromCurrentImageContext(); [self.tempDrawImage setAlpha:opacity]; UIGraphicsEndImageContext(); lastPoint = currentPoint; } - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { if(!mouseSwiped) { UIGraphicsBeginImageContext(self.view.frame.size); [self.tempDrawImage.image drawInRect:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound); CGContextSetLineWidth(UIGraphicsGetCurrentContext(), brush); CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), red, green, blue, opacity); CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y); CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y); CGContextStrokePath(UIGraphicsGetCurrentContext()); CGContextFlush(UIGraphicsGetCurrentContext()); self.tempDrawImage.image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); } UIGraphicsBeginImageContext(self.mainImage.frame.size); [self.mainImage.image drawInRect:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height) blendMode:kCGBlendModeNormal alpha:1.0]; [self.tempDrawImage.image drawInRect:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height) blendMode:kCGBlendModeNormal alpha:opacity]; self.mainImage.image = UIGraphicsGetImageFromCurrentImageContext(); self.tempDrawImage.image = nil; UIGraphicsEndImageContext(); } - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([segue.identifier isEqualToString:@"ImagePass"]) { Draw2ViewController *D2V = [segue destinationViewController]. D2V.myImage = _mainImage; } } @end </code></pre> <p>And Draw2viewController has just been created so there is only the default code in it</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload