我必须修改基于旧版应用程序中的故事板显示的ViewControllers的流程。

假设故事板说要显示屏幕,如下所示:

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),如果条件为false,则在ViewController中为屏幕B调用序列:

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


几乎可以正常使用...屏幕C会显示半秒钟,然后出现屏幕D。

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

屏幕C短暂显示的原因很明显吗?是因为情节提要吗?还是仅仅打个电话还不够?还是这意味着屏幕C的ViewController已在代码中的某个地方实例化?

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

最佳答案

我自己解决了这个问题。我删除了旧的segue并重新构建它,并给他起了个名字。之后,应用程序将遵循我希望的流程。

感谢所有的建议!!

10-08 20:22
查看更多