我创建了一个应用程序,它从Camera中选择图像,并在didFinishPickingMediaWithInfo上将此传递给另一个视图并加载此视图。我认为代码没问题,但显示第二个视图需要15到20秒。所以,请告诉我如何解决此加载问题。
我的代码块是:
-(void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info
{
[[picker parentViewController] dismissModalViewControllerAnimated:YES];
[NSThread detachNewThreadSelector:@selector(switchToSecondView:) toTarget:self withObject:info];
}
-(void) switchToSecondView:(NSDictionary *)info
{
UIImage *image = [info
objectForKey:UIImagePickerControllerOriginalImage];
secController =[[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
secController.myimage = image;
AppDelegate *appDelegate=(AppDelegate *)[[UIApplication sharedApplication] delegate];
[appDelegate.navController pushViewController:secController animated:NO];
}
谢谢, Laxmilal Menaria
答案 0 :(得分:0)
UiKit仅在主线程上使用是绝对安全的。您在switchToSecindView:
中的工作正在后台线程中进行。因此,行为未定义。
可能发生的事情是,UIKit在碰巧正在进行其他处理之前未能注意到您的更改。