在Storyboard中,如何实现一个视图控制器对应多个Push Segues的功能?

4
我在 Xcode 4.6 中有一个使用 storyboards 的应用程序。根视图控制器嵌入到导航控制器中,应用程序中的所有视图控制器都通过导航控制器通过 push segues 访问。
我遇到了一个问题,当我想让两个不同的视图控制器通过 push segues 访问一个特定的视图控制器(称为 photos)时。在添加第二个 segue 后,似乎在 photos 控制器中有一个嵌套的导航控制器。目标是,在 photos 中只有一个带有 dismiss 按钮的导航栏,当按下该按钮时,返回到呈现 photos 视图控制器的两个视图控制器中的任何一个。我对 iOS 还比较新,不确定实现这个目标的最佳方法或如何通常处理此情况。
以下是我的故事板的图片供参考:

你能解释一下你是如何设置segue的吗?如果我在导航控制器的根视图控制器中有两个按钮,一个segue到下一个控制器,另一个segue到下一个(而下一个也segue到最后一个),我就看不到这个问题了。一切都正常工作,只有一个导航栏,返回按钮有推送它的控制器的标题。 - rdelmar
我添加了一个故事板的图片来澄清我的问题。 - jac300
这些名字有点模糊,难以辨认。其中那个有两个蓝色矩形的是选项卡控制器吗?如果是,你是从选项卡控制器推出视图控制器,还是那个有问题的控制器是它的一个视图控制器?左侧只有第一个控制器是导航控制器吗? - rdelmar
抱歉造成困惑 - 带有两个蓝色矩形的那个是普通的视图控制器,其中包含一个选项卡栏(它被设置为选项卡栏控制器委托)。我从选项卡按钮之一创建了一个到“有问题”的视图控制器的转场。所有这些控制器都是同一个导航堆栈的一部分/嵌入在同一个导航控制器中,起始于最左边的根控制器。当我从带有选项卡的视图控制器添加第二个转场到有问题的控制器时,就出现了双重导航栏问题。 - jac300
嗯...我不能复制你的双重导航栏。你是直接从选项卡按钮到有问题的控制器创建了segue还是从控制器创建的——我无法直接从按钮创建连接,Xcode不允许这样做。如果你还没有尝试过,可以尝试删除该segue并重新创建它,看看是否会有任何变化。 - rdelmar
1个回答

0
你应该使用SotyboardID编程实现它。每个ViewControler只需要几行代码就可以了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接