我试图调用UIImagePickerController在iPhone 3GS上选择一部电影,当电影被选中时,我只会拒绝它并以配置的延迟1.0秒的方式呈现MyViewController。我注意到的是10%的时间,presentModalViewController on MyViewController什么也不做,而90%的时间都是这样。我想了解为什么这种行为和什么是补救措施。下面是示例代码:
objectForKey:UIImagePickerControllerMediaType;*mediaType = info NSString
if (mediaType isEqualToString:@"public.movie")
{
videoURL = info objectForKey:UIImagePickerControllerMediaURL;
}
picker.delegate =0;
[采摘者parentViewController解雇ModalViewController动画:是的];
带的self performSelector:@selector(launchMyViewController:):0
afterDelay:1.0;
}
-(LaunchMyViewController):(Id) obj {
MyViewController *myCtrl = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:[NSBundle mainBundle] controller:self];
[self presentModalViewController:myCtrl animated:YES];
[myCtrl release];
NSLog(NSStringFromClass([self.modalViewController class]));
[path release];
}
我已经将NSLog语句用于打印self.modalViewController类名,而我注意到10%的情况下,当myCtrl没有正常触发时,self.modalViewController.class就是UIImagePickerController。否则,self.modalViewController.class就是MyViewController。我想知道为什么这种行为如此不可预测,有什么解决办法或其他方法来实现我想要的相同的事情。
发布于 2010-04-17 15:09:27
我猜使用performSelector:afterDelay:
调用才是问题所在。尝试立即调用您的启动方法,而不是通过延迟。
https://stackoverflow.com/questions/2658586
复制相似问题