按下页面时执行 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的主要内容,如果未能解决你的问题,请参考以下文章

使用按下按钮和数组行的标识来执行 segue

如何使 segue 等待功能在按钮按下时完成?

执行 segue 后,文本字段永久位于标签中

在发送者视图控制器被解雇后执行 segue

如何在执行segue之前执行按钮动画[重复]

从按钮执行 segue 时应用程序冻结