2010-04-17 20 views
0

我想调用UIImagePickerController在iPhone 3GS上选择一个电影,当电影被选中时,我只是解雇它,并以1.0秒的配置延迟模态呈现MyViewController。我注意到的是10%的时间,MyViewController上的presentModalViewController什么都不做,而它的工作时间是90%。我想了解为什么这种行为和补救措施是什么。下面是示例代码:UIImagePickerController dismissModalViewController

  • (无效)imagePickerController:(的UIImagePickerController *)选择器didFinishPickingMediaWithInfo:(的NSDictionary *)信息 {

    NSURL * videoURL =零;

    NSString * mediaType = [info objectForKey:UIImagePickerControllerMediaType];

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

    {

    videoURL = [info objectForKey:UIImagePickerControllerMediaURL]; 
    

    }

    picker.delegate =零;

    [[picker parentViewController] dismissModalViewControllerAnimated:YES];

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

}

- (空)launchMyViewController:(ID)目标文件 {

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。我想知道为什么行为如此不可预测,以及采取什么样的解决方法或其他方式来达到我想要的目的。

回答

0

我会猜测使用performSelector:afterDelay:呼叫是问题所在。尝试立即调用您的启动方法,而不是延迟。

相关问题