按下页面时执行 Segue
Posted
技术标签:
【中文标题】按下页面时执行 Segue【英文标题】:Perform a Segue When Page is Pressed 【发布时间】:2016-10-11 13:24:14 【问题描述】:我正在尝试定义一个 segue,在按下第二个视图控制器时将变量传递给第二个视图控制器。
这是我到目前为止所做的:
我创建了从一个视图控制器到第二个视图控制器的转场,我的问题是当我按下第二个视图控制器的页面时从未调用转场。
按下第二个视图控制器页面时如何执行转场?
谢谢!
编辑:我需要在不更改 ViewControlles 的情况下执行 segue。我可以这样做吗?
【问题讨论】:
你在哪里写过按钮按下动作? 你实现了 prepareForSegue 方法吗 @YogeshMv 这就是问题所在。我不想要一个按钮来做到这一点。我有 3 页的标签栏控制器,只有当其中一个被点击时,我才希望 segue 执行。 @LukePatterson 第一张图片在 'prepareForSegue' 方法中 【参考方案1】:你可以像这样设置你的segue:
那么一定要在视图中看到你的推送:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!)
if (segue.identifier == "mySeague")
let destinationVC = segue.destinationViewController as! ViewController
destinationVC.testVariable = "Hello world"
这是一件小事,但您应该从 segue 标识符中删除空格。
【讨论】:
谢谢你的回答,但我不想用按钮来做。我有 3 页的标签栏控制器,只有当其中一个被点击时,我才希望 segue 执行。 @random 我想知道你如何将视频转换为 gif 来发布答案。如果你不介意......干杯 @HelpPleasee 查看这个答案,它可能会有所帮助:***.com/questions/31086416/… 您需要以编程方式执行转场。【参考方案2】:问题是您将 segue 链接到 2 个控制器,这样,您就没有任何调用该操作的东西。
如果您想在点击按钮时调用它,请按 ctrl + 从按钮拖放到目标视图。
如果您想在第一个视图控制器上点击调用它,请在控制器上添加gestureTapRecognizer
,然后从该手势识别器(在情节提要左侧的文档大纲中)按 ctrl + 拖放到您的目标控制器。
【讨论】:
以上是关于按下页面时执行 Segue的主要内容,如果未能解决你的问题,请参考以下文章