2010-04-17 6 views
0

iPhone 3GS에서 동영상을 선택하기 위해 UIImagePickerController를 호출하려고하는데 무비를 선택하면 1.0 초로 구성된 MyViewController를 모달로 표시합니다. 시간의 90 %가 작동하는 반면 시간의 10 %는 MyViewController의 presentModalViewController는 아무것도하지 않습니다. 나는 왜이 행동과 치료법이 무엇인지 이해하고 싶습니다. 다음 샘플 코드 :UIImagePickerController dismissModalViewController

  • (공극) imagePickerController (UIImagePickerController를 *) didFinishPickingMediaWithInfo 선택기 (NSDictionary와 *) 정보 {

    NSURL *에서는 videoURL = 닐;

    NSString * mediaType = [정보 objectForKey : UIImagePickerControllerMediaType];

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

    {

    videoURL = [info objectForKey:UIImagePickerControllerMediaURL]; 
    

    }

    picker.delegate = 닐;

    [[picker parentViewController] dismissModalViewControllerAnimated : YES];

    [자기 performSelector : @selector (launchMyViewController withObject :) :
    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]; 

}

나는 self.modalViewController 클래스 이름을 인쇄 할 NSLog 문을 뒀다

및 내가 알아 차리면 myCtrl이 모달로 실행되지 않는 시간의 10 %이고 self.modalViewController.class는 UIImagePickerController입니다. 그렇지 않은 경우, self.modalViewController.class는 MyViewController입니다. 왜 행동이 그렇게 예측할 수 없으며, 의도 한 것과 동일한 목표를 달성하기위한 해결 방법이나 다른 방법이 무엇인지 알고 싶습니다.

답변

0

나는 performSelector:afterDelay: 호출을 사용하는 것이 문제임을 짐작할 것입니다. 지연 대신에 즉시 launch 메서드를 호출 해보십시오.

관련 문제