I have an application that is almost done, and now that it was under QA, the QA engineer ran into a random problem in which a black screen appears after clicking on USE in the UIImagePickerController . In addition, in didFinishPickingMediaWithInfo image is saved for future repetition and displayed in UIImageView , I also use the camera overlay to add a button to UIImagePickerView , and the maximum memory usage of the application does not go above 13 MB . The problem does not occur when switching to camera roll mode from shooting mode. Also in the same view are iADs . Under the codec to which the problem relates, images are also attached to get an idea of ββthe problem. Any help would be greatly appreciated.
Thanks in advance.


![RANDOMLY THIS SCREEN APPEARS AFTER TAPPING ON USE, THOUGH ON NAVIAGTING TO AND FRO TO OTHER TABS THE CORRECT SCREEN [THE SCREEN NUMBER 2] DOES APPEARS.](https://fooobar.com//img/96490b905b05d0667c484a65fd6034f3.png)
(void) launchCamera { // Set up the camera\ CustomCameraView *cameraController = [[CustomCameraView alloc] init]; cameraController.sourceType = UIImagePickerControllerSourceTypeCamera; cameraController.delegate = self; cameraController.showsCameraControls = YES; cameraController.navigationBarHidden = YES; cameraController.toolbarHidden = YES; // overlay on top of camera lens view UIButton *cameraRoll = [[UIButton alloc] initWithFrame:CGRectMake(15, 380, 40, 40)]; [cameraRoll setAlpha:0.0f]; [cameraRoll setBackgroundImage:[UIImage imageNamed:@"CamerRoll_New"] forState:UIControlStateNormal]; [cameraRoll addTarget:self action:@selector(switchToCameraRoll) forControlEvents:UIControlEventTouchUpInside]; cameraController.cameraOverlayView = cameraRoll; [UIView beginAnimations:nil context:NULL]; [UIView setAnimationDelay:1.5f]; cameraRoll.alpha = 1.0f; [UIView commitAnimations]; [self presentModalViewController:cameraController animated:YES]; } -(void)switchToCameraRoll { DLog(@"Camera Roll"); [self dismissViewControllerAnimated:NO completion:^(void){ [self photoSourcePhotoAlbum];}]; } -(void) photoSourcePhotoAlbum { UIImagePickerController * picker = [[UIImagePickerController alloc] init]; picker.delegate = self; picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum; [self presentModalViewController:picker animated:YES]; } - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { [self.view addSubview:progressView]; timer = [NSTimer scheduledTimerWithTimeInterval:.017 target:self selector:@selector(progressChange) userInfo:nil repeats:YES]; [picker dismissModalViewControllerAnimated:YES]; [self performSelectorInBackground:@selector(saveImage:) withObject:info]; [self performSelector:@selector(navigateToEditView) withObject:nil afterDelay:2.1]; } -(void)navigateToEditView { [self performSegueWithIdentifier:@"presentRDetailModalViewController" sender:self]; } - (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker { if (picker.sourceType == UIImagePickerControllerSourceTypeSavedPhotosAlbum) { [picker dismissViewControllerAnimated:NO completion:^(void){ [self photoSourceCamera];}]; } else { [picker dismissModalViewControllerAnimated:YES]; } } -(void)saveImage:(NSDictionary *)info { NSString *imageName = [[[DataStaging dataStaging] getGUID] stringByAppendingString:@".jpg"]; rImageName = imageName; UIImage *rImage = [info objectForKey:@"UIImagePickerControllerOriginalImage"]; //Compress image [[FileOperations fileOperations] PersistData:UIImageJPEGRepresentation(rImage, 0.4) name:imageName]; DLog(@"%@",[[FileOperations fileOperations] fetchPath:imageName]); //Actual image taken [[self rImageView] setImage:[info objectForKey:@"UIImagePickerControllerOriginalImage"]]; if ([rImageName length] == 0) { [[self rDetails] setHidden:YES]; [[self trashRImage] setHidden:YES]; } else { [[self rDetails] setHidden:NO]; [[self trashRImage] setHidden:NO]; } [progressView removeFromSuperview]; } }
source share