【发布时间】: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