0

当我尝试通过将当前视图控制器从堆栈中弹出来返回到前一个视图控制器时,我在 AppDelegate.m 程序中收到 EXC_BAD_ACCESS 错误消息。该错误显然意味着视图控制器不在堆栈中。

我在 AppDelegate.m 程序中初始化我的第一个视图的代码如下:

  CEMMainViewController *mc = [[CEMMainViewController alloc]     
                              init];       
  UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:mc];
  self.window.rootViewController = navController;

当我想调出一个新的视图控制器时,我会执行以下操作:

  CEMUpdateBurialViewController *oc = [[CEMUpdateBurialViewController  alloc] init];
  [self.navigationController pushViewController:oc animated:YES];

当我想返回上一个视图时,我会执行以下操作,这会导致 EXEC_BAD_ACCESS 错误。那么为什么堆栈中没有前一个视图?我只需要知道我做错了什么。

  UINavigationController *navigationController = self.navigationController;
             [navigationController popViewControllerAnimated:YES];
4

1 回答 1

1

使用以下代码检查您的视图控制器层次结构:

 NSLog(@"%@",self.navigationController.viewControllers);

并尝试这种方法:

[self.navigationController popToRootViewControllerAnimated:YES];
于 2014-10-26T03:39:17.950 回答