如何摆脱或更改情节提要以编程方式创建 segue

Posted

技术标签:

【中文标题】如何摆脱或更改情节提要以编程方式创建 segue【英文标题】:How to get rid of or change a storyboard created segue programatically 【发布时间】:2017-12-05 22:43:17 【问题描述】:

我有一个从一个视图控制器到另一个视图控制器的 segue,它是在我的项目的故事板中创建的。我想知道是否有办法通过代码来改变或摆脱这种segue。谢谢,使用 Xcode 9 Swift 4。

【问题讨论】:

你可以通过实现override func shouldPerformSegue(withIdentifier identifier: String, sender: Any?) -> Bool if identifier == "aSegueIWantToDisable" return false ; return true 来忽略segue 【参考方案1】:

显然不可能...查看this post 上的答案。 documentation 说这是关于创建 segues 的:

“您不直接创建转场对象。相反,情节提要运行时在必须在两个视图控制器之间执行转场时创建它们。”

虽然不是改变或删除segue,但我认为是相同的逻辑。

如果你只是想避免转场发生,你可以在“shouldPerformSegue”中做到这一点(就像 vacawama 在 cmets 中所说的那样):

override func shouldPerformSegue(withIdentifier identifier: String, sender: Any?) -> Bool  
    if identifier == "aSegueIWantToDisable"  
        return false 
     
    return true 

【讨论】:

感谢您的回答。如果不可能,是否有解决方法? 也许有!您能否再解释一下您想要实现的目标,以便我想出一个解决方案? 如果您只是想避免发生转场,我添加了一个解决方法。我注意到 vacawama 之前评论过它,所以我使用了他的代码。

以上是关于如何摆脱或更改情节提要以编程方式创建 segue的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式更改使用自动布局在情节提要上创建的 UIImageView 的大小?

Swift 以编程方式创建一个 unwind segue

UIButton 标题标签文本未使用情节提要或以编程方式更改

Segues 直接从情节提要 xcode 中的视图控制器警告启动

为啥我没有成功以编程方式使用 segue?

在swift3中按下按钮时如何以编程方式执行segue或呈现视图