ios - 为什么我的导航控制器现在进行模态转换而不是推送?
问题描述
寻求一些我显然不明白的问题的帮助,因为我只是这里的初学者,所以如果可以的话,请帮助我。
这是我的问题,到目前为止,我通过情节提要构建了所有视图,并且所有视图都由导航控制器使用情节提要中设置的“推送”segue 显示,直到现在一切都按预期工作。
在某些时候,我决定在主视图控制器的下半部分添加日历视图,以便在用户按下按钮时显示。根据网上找到的一些建议,我决定将其添加为子视图控制器(并以编程方式进行)。
这是我用来呈现视图的代码:
addChild(calendarVC)
view.addSubview(calendarVC.view)
calendarVC.didMove(toParent: self)
这是我用来关闭视图的代码:
willMove(toParent: nil)
removeFromParent()
到目前为止一切都很好,但这里有一个问题:
触发 removeFromParent() 部分后,每个其他视图控制器之间的转换从推送更改为模态。几乎就像我以某种方式失去了与导航控制器的连接?我不知道,而且我的知识水平太低,无法自己弄清楚,任何通过搜索类似主题在这里找到答案的尝试也没有给我任何我能理解的答案,所以希望有人能解释一下我的问题在这里。
谢谢
解决方案
确保willMove(toParent: nil) removeFromParent()
从子视图控制器调用。
从父视图调用上述函数将从导航层次结构中删除控制器。
推荐阅读
- javascript - 动态表 - 自动显示
- sql-server - 如何将 SQL Server 更改跟踪与实体框架一起使用
- reactjs - React组件迭代数据行:TypeError:无法读取未定义的属性'map'
- windows - 将文件列表(和文件夹结构)导出到文件(Windows 10)
- java - 无法计算输入值的值并且错误提示:字符串为空
- excel - 调用宏并定义变量
- javascript - Ajax Javascript Promise 返回错误值
- php - Woocommerce - no-products-found.php - 添加联系表单简码
- vb.net - 您如何允许 vb.net 基本 winforms 控件检测控件外部的单击
- bash - 在需要在单引号内包含反引号的命令中替换变量