ios - 新出现的视图控制器在出现后立即被解散?
问题描述
我有一个视图控制器,它调用另一个视图控制器present(newViewController...
。但是,每当调用此当前函数的函数时,新的视图控制器都会在屏幕上弹出一秒钟,然后再次关闭。这个新的视图控制器中没有任何函数可以自行关闭。
我能想到的唯一可能导致这种情况的是我对 SnapKit 的使用和覆盖viewDidLayoutSubviews
:
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
if let data = data {
return
} else { setupAVFoundation() }
}
data
是一个可选值,在我展示新视图控制器时设置,因此viewDidLayoutSubviews
在if let
语句处返回。但是我已经确认,在展示新的视图控制器时,viewDidLayoutSubviews
会被调用四次。我无法弄清楚为什么会发生这种情况,或者为什么它会中断新视图控制器的呈现。
以下是新视图的展示位置:
func found(code: String) {
print(code)
data = code
present(ItemSelectViewController(), animated: true, completion: nil)
}
解决方案
推荐阅读
- reporting-services - 在 SSRS/BI 报告中获取“最大请求长度超出错误”
- java - 如何避免必须设置端口转发
- reactjs - Map 不是 React Hooks 中的函数
- c# - 在画布中定位
- c# - 当创建基于运行时传递的信息时,如何摆脱工厂方法中的 switch 语句
- audio - 使用 ffmpeg 合并多个视频和一个音频。在音频未结束时循环播放所有视频
- r - 如何将德雷克动态子目标与实际数据帧/源目标相关联?
- javascript - 获取数组数组中的最后一个数组
- c# - c# 使用计时器移动图片框并在winform中停止
- algorithm - 以预定义的顺序快速遍历元素的有序元素集选择数据结构