【问题标题】:How to change storyboard flow如何更改情节提要流程
【发布时间】:2018-12-05 08:54:34
【问题描述】:

我必须根据旧版应用程序中的情节提要修改显示的 ViewController 流程​​。

假设故事板显示屏幕如下:

screen A -> screen B -> screen C -> screen D

现在的修改是根据特定条件不应该显示屏幕 C。比方说,如果条件为真,则显示屏幕 C,否则不显示,直接显示屏幕 D。

流程应该是:

                        /-------false--\ 
                       /                \
                      /   true           \
screen A -> screen B ---------> screen C ----> screen D

我在屏幕 B 和屏幕 D 之间创建一个转场。如果条件为真,我什么也不做(屏幕 C,然后显示屏幕 D),如果条件为假,我在 ViewController 中为屏幕 B 调用转场:

  performSegue(withIdentifier: "DirectlyDisplayScreenD", sender: self)

几乎可以工作了……屏幕C显示半秒,然后是屏幕D。

我是 iOS 的初学者,我所做的至少在原则上是正确的吗?

屏幕 C 短暂显示是否有明显的原因?是因为故事板吗?或者调用 segue 是不够的?还是意味着屏幕 C 的 ViewController 在代码中的某处被实例化了?

有没有删除情节提要的 ViewController 的方法?我找到了方法instantiateViewController,但是我没有找到方法“removeViewController”

【问题讨论】:

  • 你把按钮钩成segue还是VCB的来源
  • 如果你什么都不做,屏幕显示出来,那肯定是storyboard中直接设置了一个按钮触发的segue
  • 我认为您已经复制了按钮并向按钮添加了新操作,但旧操作仍然存在。点击按钮后,它会调用两种方法(新方法和旧方法)。在情节提要中右键单击按钮并检查它调用了多少操作。
  • 能分享一下performSegue的代码吗?并确保故事板上的“已发送事件”按钮。

标签: ios swift uiviewcontroller storyboard segue


【解决方案1】:

我自己解决了这个问题。我删除了遗留的 segue 并重新构建它以照顾给他一个名字。之后应用程序遵循我希望的流程。

谢谢大家的建议!!

【讨论】:

    猜你喜欢
    • 2012-02-09
    • 1970-01-01
    • 2019-10-15
    • 1970-01-01
    • 1970-01-01
    • 2018-09-29
    • 2015-05-05
    • 2014-08-27
    • 1970-01-01
    相关资源
    最近更新 更多