开发者

Passing UIImage to second view controller lags transition

I'm using a UIImagePickerController to select an image from my photo album. Once I've selected the image, I'm passing the image through to a second view controller and displaying it in a UIImageView. See code below:

Fir开发者_运维百科st view controller:

- (IBAction)selectPhoto
{
    imagePicker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
    [self presentModalViewController:self.imagePicker animated:YES];
}

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{    
    UploadViewController *uploadViewController = [[UploadViewController alloc] initWithNibName:@"UploadViewController" bundle:nil];
    [uploadViewController setImage:[info objectForKey:@"UIImagePickerControllerOriginalImage"]];

    [picker pushViewController:uploadViewController animated:YES];
}

Second view controller:

- (void)viewDidLoad
{
    [super viewDidLoad];

    // Set the image view image
    imageView.image = self.image;
}

The code does the job, however, when I push from the image picker to my second view controller, it lags as it's transitioning.

Ideally I would like a smooth transition but I would be happy if it just waited half a second or something and then moves smoothly.

Can any explain why this could be happening and how/if I can get around it?

Thanks.


The delay is probably from rendering the image, you could try having your UploadViewController's initial view contain an activity spinner then actually set the image in the viewDidAppear method, this method should be called after the animation is completed.


Try with this , here timer is introduced in order to provide delay(0.5sec) ,

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{    
    [NSTimerscheduledTimerWithTimeInterval:0.5 target:self selector:@selector(timerAction:) userInfo:info repeats:NO];
}


-(void)timerAction:(NSTimer *)timer
{
  UploadViewController *uploadViewController = [[UploadViewController alloc] initWithNibName:@"UploadViewController" bundle:nil];
    [uploadViewController setImage:[[timer userInfo]objectForKey:@"UIImagePickerControllerOriginalImage"]];

    [picker pushViewController:uploadViewController animated:YES];
   [uploadViewController release];
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜