segue样式“替换”后缺少导航栏按钮项

时间:2013-01-16 14:54:21

标签: ios6 uistoryboard uistoryboardsegue uinavigationitem

我正在处理的iPad应用程序使用了Storyboard和segues。当用户点击主视图中的不同单元格时,我正在尝试显示不同的视图控制器。 在参考了不同的教程之后,采取的步骤是 -

  • StoryboardMaster View Controller中,为表格视图创建了静态单元格,并添加了3个不同的行(即单元格1,单元格2,单元格3)
  • 添加View Controller,选中它并附加Navigation Controller Editor - > Embed In - > Navigation Controller
  • Master View的单元格1中,我按住Navigation Controller进行了一次按住。
  • 选择Segue Style“替换”和Destination“详情拆分”
  • 在tableView:didSelectRowAtIndexPath中,添加[self performSegueWithIdentifier:@“NewViewController”sender:self]进行转换。

我看到的结果是细节视图被替换。

但导航栏没有条形按钮项Master

所以我无法点击Master按钮,它会显示包含我可以导航到不同视图的单元格的表格。

我已经阅读过很多博客,并且看到过有关替换类似问题的segue的评论。然而,在使用故事板和segues时,似乎没有人遇到过这个特定问题。

从我对使用segues的理解应该帮助我实现我想要的。从那些尝试过这种方法的人那里,任何正确方向的指针都会有所帮助。

1 个答案:

答案 0 :(得分:1)

尝试将Segue StyleReplace更改为Push。它应该可以解决你的问题。

当您在UIViewController上推送UINavigationController时,它会被添加到堆栈中,您将能够导航回来:

点击“详细信息”之前的导航控制器堆栈:

Master

点击详细信息并导航更多后,您的导航控制器......:

Master -> Detail (Navigation button is displayed) -> Some other details (Navigation button is displayed) -> And maybe some more (Navigation button is displayed)

当您使用Replace调用新的segue时,Master将替换为Detail,您将无法导航回来,因为Master已被替换,而且它是不再在堆栈上了。

点击“详细信息”之前的导航控制器堆栈:

Master

使用替换点击详细信息后的导航控制器:

Detail (no navigation button because master was replaced and we don't have nothing more on the stack)