2012-04-03 3 views
3

나는 3 개의보기를 만들었습니다. 첫 번째보기는 집이고 두 번째는 인벤토리이며 세 번째는 오버레이보기입니다. 홈 화면에서 pushviewcontroller를 사용하여 인벤토리보기 화면으로 이동합니다. 인벤토리보기에는 캡쳐 버튼이 하나 있습니다. 캡처 버튼을 누르면 오버레이 뷰에서 카메라가 열립니다. 이제는 오버레이 뷰에 뒤로 버튼이라는 버튼이 있습니다.이 버튼을 클릭하면 홈 스크린으로 이동하려고하지만 첫 번째로 카메라를 닫아야합니다. 이것이 어떻게 가능한지? 재고보기카메라를 닫고 루트보기 컨트롤러로 이동하는 방법은 무엇입니까?

캡처 버튼

수 있도록 OverlayView로 돌아 가기 버튼 이벤트에서
-(IBAction) btnCapture:(id) sender 
    { 
    @try 
    { 
      [self showImagePicker:UIImagePickerControllerSourceTypeCamera]; 
    } 
     @catch (NSException *exception) 
     { 
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"No Camera" message:@"Camera is not available " delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil]; 
     [alert show]; 
     [alert release]; 
     } 
} 

:

-(IBAction)btnBack:(id)sender 
    { 
      app.navcntr=1; 
      [self.delegate didFinishWithCamera]; 
      [self dismissModalViewControllerAnimated:YES]; 
     } 

및 인벤토리보기

, viewWillAppear

-(void) viewWillAppear:(BOOL)animated 
    { 
      if(app.navcntr ==1) 
      { 
       [self.navigationController popToRootViewControllerAnimated:YES]; 
      } 
      app.navcntr=0; 
    } 

문제는 집으로 이동된다 화면하지만 응용 프로그램이 추락합니다. 어떻게 해결할 수 있습니까?

감사합니다. enter image description here

+0

일부 코드로 질문 편집 – Tirth

+0

카메라를 표시하려면 모달보기를 사용 했습니까? – Maulik

+0

크래시 로그하시기 바랍니다. 오류 로그를 게시하십시오. – Ilanchezhian

답변

2

나는 당신이 두 번 카메라 뷰를 닫습니다하려고 생각합니다. 즉, didFinishWithCamera 메서드가이를 무시합니다.

당신이 화면에없는 경우가 애니메이션을 수행하지 않아야 편집 라인 [self dismissModalViewControllerAnimated:YES];

-(IBAction)btnBack:(id)sender 
    { 
      app.navcntr=1; 
      [self.delegate didFinishWithCamera];    
    } 

제거 ("표시됩니다").

당신은 UIImagePickerController를 소유 컨트롤러에서 모달 뷰 컨트롤러를 해제해야합니다

-(void) viewDidAppear:(BOOL)animated 
    { 
      [super viewDidAppear:animated]; 

      if(app.navcntr ==1) 
      { 
       [self.navigationController popToRootViewControllerAnimated:YES]; 
      } 
      app.navcntr=0; 
    } 
+0

wait_fences : 답장을받지 못했습니다 : 10004003 –

+0

@ komalmehta :이게 뭐지? 충돌 로그 ?? – Maulik

+0

@ komalmehta : 업데이트 된 답변 확인 – Maulik

0

처럼 viewDidAppear에서 코드를 작성합니다.

-(IBAction)whilePoppingBack:(id)sender{ 
    [controllerWhichContainsPicker dismissModalViewControllerAnimated:YES]; 
} 

//이 작업이 완료되면, 당신은 행복 popToRootViewController의 방법으로 홈 뷰 컨트롤러로 이동할 수 있습니다.

PS 참고 : ControllerWhichContainsPicker를 찾는 것이 또 다른 일입니다.이 것은 나중에이 항목을 닫아야하는 탐색 계층 및 다른보기 작업과 같은 다른 작업을 수행해야하는 뷰 계층 구조에 따라 달라집니다.

// 또 다른 것은 (U이 여기에 언급했듯이 : wait_fences을 : 10004003 : 답장을받지 못한) 메신저 것으로 의심되는 일부 메모리 누수가 무엇 .Try이 악기 도구를 실행 또는 NSZombie 또는 NSMallocGaurd를 활성화하고 그림을 시도를 위의 코드가 문제를 해결하지 못하는 경우 누수의 위치를 ​​밖으로.

당신이 그것을 없앨 수 있는지 알려주세요!

관련 문제