Iphone 如何关闭摄影机并导航到根视图控制器?

Iphone 如何关闭摄影机并导航到根视图控制器?,iphone,ios,ipad,Iphone,Ios,Ipad,我已经创建了3个视图。 第一个视图是主视图,第二个视图是库存视图,第三个视图是覆盖视图。 现在,使用pushviewcontroller从主屏幕导航到库存视图屏幕。 在库存视图中,我有一个捕获按钮。“捕获”按钮将在overlayview上打开相机。 现在的问题是在overlayview中有一个名为back button的按钮,当我点击这个按钮时,我想导航到主屏幕,但为此,我需要先打开相机。这怎么可能 库存视图中的捕获按钮 -(IBAction) btnCapture:(id) sender

我已经创建了3个视图。 第一个视图是主视图,第二个视图是库存视图,第三个视图是覆盖视图。 现在,使用pushviewcontroller从主屏幕导航到库存视图屏幕。 在库存视图中,我有一个捕获按钮。“捕获”按钮将在overlayview上打开相机。 现在的问题是在overlayview中有一个名为back button的按钮,当我点击这个按钮时,我想导航到主屏幕,但为此,我需要先打开相机。这怎么可能

库存视图中的捕获按钮

   -(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];
      }
在“资源清册”视图中,将显示视图

   -(void) viewWillAppear:(BOOL)animated
    {
          if(app.navcntr ==1)
          {
                [self.navigationController popToRootViewControllerAnimated:YES];
          }
           app.navcntr=0;
   }
问题是它正在导航到主屏幕,但应用程序会崩溃。 如何解决

谢谢。

我认为您试图两次关闭您的相机视图。我的意思是
didfishwithcamera
方法将忽略它。删除行
[自解除ModalViewController激活:是]

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

不在屏幕上时不应执行动画(“将出现”)

viewdide中编写代码

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

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

您需要从拥有UIImagePickerController的控制器中取消模式视图控制器

-(IBAction)whilePoppingBack:(id)sender{
    [controllerWhichContainsPicker dismissModalViewControllerAnimated:YES];
}
//完成后,您可以通过popToRootViewController方法愉快地导航到主视图控制器

PS注意:查找ControllerHichContainesPicker是另一件事,这取决于您创建的视图层次结构,您需要先忽略它,然后再进行其他操作,如导航和其他视图操作


//另一件事是我怀疑的是内存泄漏(正如你在这里提到的:等待:未能收到回复:10004003)。如果上述代码似乎无法解决问题,请尝试运行instruments工具或NSZombie或NSMallocGaurd以启用,并尝试找出泄漏的位置


让我知道你是否能摆脱它

用一些代码编辑您的问题您是否使用了模态视图来显示摄像头?请输入碰撞日志。发布崩溃日志。@komal如何在按下视图后按下该视图检查您是否释放该视图控制器…wait_fences:未能收到回复:10004003@komalmehta这是什么?事故日志??