首页 文章

UIImagePickerController dismissModalViewController

提问于
浏览
0

我正在尝试调用UIImagePickerController来选择iPhone 3GS上的电影,当选择电影时,我只是将其解除并以模态方式呈现MyViewController,配置延迟为1.0秒 . 我注意到的是10%的时间,MyViewController上的presentModalViewController什么都不做,而它的工作时间是90% . 我想了解为什么这种行为和什么是补救措施 . 以下是示例代码:

  • (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {

NSURL * videoURL =零;

NSString * mediaType = [info objectForKey:UIImagePickerControllerMediaType];

if ([mediaType isEqualToString:@"public.movie"])

{

videoURL = [info objectForKey:UIImagePickerControllerMediaURL];

}

picker.delegate = nil;

[[picker parentViewController] dismissModalViewControllerAnimated:YES];

[self performSelector:@selector(launchMyViewController :) withObject:nil
afterDelay:1.0];

}

  • (void)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类名,我注意到myCtrl没有以模态方式触发的时间是10%,self.modalViewController.class是UIImagePickerController . 否则,self.modalViewController.class是MyViewController . 我想知道为什么行为如此不可预测,以及解决方法或其他方式来实现我想要的相同的东西 .

1 回答

  • 0

    我猜想使用 performSelector:afterDelay: 调用是个问题 . 尝试立即调用您的启动方法,而不是通过延迟 .

相关问题