我创建了3个视图。
第一个视图是首页,第二个视图是广告资源,第三个视图是重叠视图。
现在,使用pushviewcontroller从主屏幕开始,我导航至清单视图屏幕。
在清单视图中,我有一个捕获按钮。拍摄按钮将在overlayview上打开相机。
现在的问题是,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;
   }

问题是它正在导航到主屏幕,但应用程序崩溃了。
怎么解决呢?

谢谢。

最佳答案

我认为您正在尝试关闭相机视图两次。我的意思是didFinishWithCamera方法将其关闭。删除行[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;
   }

09-10 11:12
查看更多