3

我有一个视图控制器(图像中的新闻视图控制器),它加载了一个带有动态子视图的iCarousel,它工作正常,但问题是我想在用户按下按钮时执行一个 segue,但视图加载在modal segue 仅显示在子视图的正方形中,它必须位于所有视图的顶部(例如,当用户点击图像时,它会在顶部弹出一个视图)。

也许我必须在新闻视图控制器中而不是在子视图(新闻项目视图控制器)中进行 Segue?

例子

**更新**

我尝试使用:

[self.navigationController performSegueWithIdentifier:@"PhotoView" sender:self];

它没有什么,我也尝试:

[self performSegueWithIdentifier:@"PhotoView" sender:self];

它显示如下内容:

在此处输入图像描述

显示的按钮是控制自定义 UITabBarController 的按钮。当我在视图中滑动 iCarousel 仍然存在时,它会显示 iCarousel 的下一个子视图:

在此处输入图像描述

这个想法是这个 segue 必须在这样的所有事情的顶部:

在此处输入图像描述

在 iCarousel 管理的子视图中,所有按钮都与 Storyboards segues 交互,所以我需要一种方法来做到这一点。

**解决方案**

使 NewsViewController 成为 iCarousel 视图控制器的代表,我可以像在 NewsViewController 中而不是在 NewsItem 的子视图中那样执行 segue,关于我如何做到这一点的完整解释在 StackOverflow 的这个答案中,所以感谢您尝试帮助我.

4

2 回答 2

1

** 更新 **

在这里,我的回答不是问题的最佳解决方案。这只是我解决它的方法。

Segue 用作两个视图控制器之间的过渡。所以应该是全屏切换。如果您想做一些非全屏更改并且仍想使用segue。我建议使用容器视图。

但是当使用容器视图时,子视图控制器会在根视图控制器的viewDidLoad方法被触发时被加载。所以这里我们只能得到一个子视图控制器。也就是说我们应该尝试重用它。

原来的

在我过去的项目中,我使用了容器视图。 在此处输入图像描述

于 2013-06-08T05:59:08.310 回答
0

这里不需要容器视图。你也不需要调用 perfromSegue 来完成你想要的。这仅在触发无法在 IB 中设置的 segue 时才需要。

您是否通过将连接从 Triggered Segues 下的按钮操作节点拖动到模态 vc 并选择模态类型来创建此 segue?即右键单击按钮,找到操作节点并左键单击将连接拖到您的vc。然后选择“模态”。这就是所有应该要求的。

还要检查模态视图控制器的转换样式和演示是否符合您的预期(即全屏)。您可以在选择控制器时在右侧属性面板中设置它们。

于 2013-06-14T13:01:51.820 回答