iOS:通过单击表格单元格查看详细信息时,无法从UITableView Detail View导航回主视图

时间:2012-11-04 23:43:39

标签: ios uitableview uinavigationcontroller

我使用Storyboard构建了一个Master / Detail表(下面的摘要设置图)。使用导航控制器做得很糟糕,但遗憾的是我现在已经走得太远了。我在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];

以下是我的Storyboard设置的图片:

enter image description here

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

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