我有一个视图控制器(图像中的新闻视图控制器),它加载了iCarousel动态子视图,它工作正常,但问题是我想在用户按下按钮时执行segue ,但是在模态segue中加载的视图仅在子视图的正方形中显示,它必须位于所有的顶部(例如,当用户点击图像时,Facebook应用程序会弹出一个顶部的视图)。 / p>
也许我必须在新闻视图控制器中进行Segue而不是在子视图中(新闻项目View Controller)?
** 更新 **
我尝试使用:
[self.navigationController performSegueWithIdentifier:@"PhotoView" sender:self];
它并不是什么,也是我特里:
[self performSegueWithIdentifier:@"PhotoView" sender:self];
它显示的内容如下:
显示的按钮是控制Custom UITabBarController的按钮。当我在视图中滑动时,iCarousel仍然在那里,所以它显示了iCarousel的下一个SubView:
这个想法是这个segue必须是这样的一切:
在iCarousel管理的子视图中,所有与Storyboards交互的按钮都是如此,所以我需要一种方法来实现这一点。
** 解决方案 **
使NewsViewController成为iCarousel视图控制器的委托我可以在NewsViewController中像我一样进行segue而不是在NewsItem的子视图中,对我如何做到这一点的完整解释是in this answer of StackOverflow所以感谢尝试帮助我。
答案 0 :(得分:1)
这里我的答案不是问题的最佳解决方案。这只是我解决问题的方法。
Segue用作两个视图控制器之间的过渡。所以应该全屏改变。如果你想做一些不全屏改变,仍然想使用segue。我建议使用容器视图。
但是当使用容器视图时,在触发根视图控制器的viewDidLoad
方法时会加载子视图控制器。所以在这里我们只能得到一个子视图控制器。也就是说我们应该尝试重复使用它。
在我过去的项目中,我使用了容器视图。
答案 1 :(得分:0)
此处不需要容器视图。您也不需要调用perfromSegue来完成您想要的任务。只有在触发无法在IB中设置的segue时才需要这样做。
您是否通过将连接从Triggered Segues下的按钮操作节点拖动到模态vc并选择模态类型来创建此segue?即右键单击该按钮,找到操作节点,然后左键单击将连接拖动到您的vc。然后选择“模态”。这就应该是必需的。
同时检查模态视图控制器的过渡样式和演示是否符合预期(即全屏)。您可以在选择控制器时在右侧属性面板中设置它们。