0

我已经使用情节提要构建了一个主/从表(下面的概要设置图)。导航控制器做得很糟糕,但不幸的是我现在已经走得太远了。如果相关,我在 iOS 6 中运行。

我的问题是,当通过我的主视图上的“添加”按钮(通过 segue 代码工作)从主视图导航到详细视图时,“完成”按钮代码成功地将我带回主视图。但是,如果我通过单击单元格(通过didSelectRowAtIndexPath)导航到详细信息视图,单击“完成”会将我推回到实例化并推送情节提要的视图。

didSelectRowAtIndexPath:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
  {
     DetailsViewController *detailView = [self.storyboard instantiateViewControllerWithIdentifier:@"AddDetails"];
    [self.navigationController pushViewController:detailView animated:YES];
  }

我已经尝试了所有我能想到的返回主表视图,但我尝试的任何方法都不起作用。我努力了:

   [self.navigationController popViewControllerAnimated:YES];

   [self dismissViewControllerAnimated:YES completion:nil];

   MasterViewController *masterView = [self.storyboard instantiateViewControllerWithIdentifier:@"masterView"];
   [self.navigationController pushViewController:masterView animated:YES];

这是我的故事板设置的图像:

在此处输入图像描述

4

2 回答 2

0

看来你有一个非常奇怪的控制器安排。特别是您有两个导航控制器。

我建议使用以主控制器作为根控制器的单个导航控制器进行广告安排。当您从主控制器转到详细控制器时,您可以在同一个导航控制器中执行此操作。希望这可以帮助。

于 2012-11-05T00:00:47.993 回答
0

popViewController 是使用详细视图和导航控制器时的正确调用。如果这不起作用,那是非常错误的,因为您已成功使用导航控制器进行推送。

基本上你必须能够在弹出时访问你用来推送的同一个导航控制器。您甚至可以考虑在该详细视图上设置自定义导航控制器属性,并在您执行推送时分配它 - 然后也使用它来弹出。

于 2012-11-05T00:05:07.737 回答