2012-04-03 64 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]; 
     } 
} 

在OverlayView的後退按鈕事件:

-(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 2012-04-03 06:08:54

+0

你使用模態視圖來顯示相機嗎? – Maulik 2012-04-03 06:10:02

+0

崩潰日誌請。發佈崩潰日誌。 – Ilanchezhian 2012-04-03 06:16:10

回答

2

我認爲你試圖關閉你的相機視圖兩次。我的意思是didFinishWithCamera方法會解僱它。刪除EDITED

,當你在屏幕上不應該不執行動畫線路[self dismissModalViewControllerAnimated:YES];

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

( 「會出現」)。

viewDidAppear代碼像

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

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

wait_fences:未能收到回覆:10004003 – 2012-04-03 06:51:02

+0

@komalmehta:這是什麼?崩潰日誌? – Maulik 2012-04-03 06:54:41

+0

@komalmehta:檢查更新的答案 – Maulik 2012-04-03 07:01:26

0

你需要拒絕來自其擁有的UIImagePickerController控制器模態視圖控制器。

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

//完成此操作後,您可以通過popToRootViewController方法愉快地導航到主視圖控制器。

PS注意:查找控制器WhichContainsPicker是另一回事,它取決於您創建的視圖層次結構,您需要首先解決此問題,然後您需要執行其他操作,如導航和其他視圖。

//另一件事情是林懷疑是一些內存泄漏(如u有這裏所說的:wait_fences:未能收到回覆:10004003)。嘗試運行該工具工具或啓用NSZombie或NSMallocGaurd揣摩如果上面的代碼似乎沒有解決問題,那麼將泄露的位置排除在外。

讓我知道你是否能夠擺脫它!

相關問題