首页 > 解决方案 > 为什么我的导航控制器现在进行模态转换而不是推送?

问题描述

寻求一些我显然不明白的问题的帮助,因为我只是这里的初学者,所以如果可以的话,请帮助我。

这是我的问题,到目前为止,我通过情节提要构建了所有视图,并且所有视图都由导航控制器使用情节提要中设置的“推送”segue 显示,直到现在一切都按预期工作。

在某些时候,我决定在主视图控制器的下半部分添加日历视图,以便在用户按下按钮时显示。根据网上找到的一些建议,我决定将其添加为子视图控制器(并以编程方式进行)。

这是我用来呈现视图的代码:

addChild(calendarVC)
view.addSubview(calendarVC.view)
calendarVC.didMove(toParent: self)

这是我用来关闭视图的代码:

willMove(toParent: nil)
removeFromParent()

到目前为止一切都很好,但这里有一个问题:

触发 removeFromParent() 部分后,每个其他视图控制器之间的转换从推送更改为模态。几乎就像我以某种方式失去了与导航控制器的连接?我不知道,而且我的知识水平太低,无法自己弄清楚,任何通过搜索类似主题在这里找到答案的尝试也没有给我任何我能理解的答案,所以希望有人能解释一下我的问题在这里。

谢谢

标签: iosswiftuinavigationcontrollersegue

解决方案


确保willMove(toParent: nil) removeFromParent()从子视图控制器调用。

从父视图调用上述函数将从导航层次结构中删除控制器。


推荐阅读