ios - 执行自定义 segue 时,屏幕冻结并出现 EXC_BAD_ACCESS 消息
问题描述
我用 swift 构建了我的第一个应用程序并创建了一个自定义 segue,因此我的故事板的幻灯片从左到右呈现(滑动)。我从iOS Segue - Left to Right -获得的自定义 segue 类中的代码如下:
import UIKit
class SegueFromLeft: UIStoryboardSegue {
override func perform() {
let src = self.source
let dst = self.destination
src.view.superview?.insertSubview(dst.view, aboveSubview: src.view)
dst.view.transform = CGAffineTransform(translationX: -src.view.frame.size.width, y: 0)
UIView.animate(withDuration: 0.25,
delay: 0.0,
options: .curveEaseInOut,
animations: {
dst.view.transform = CGAffineTransform(translationX: 0, y: 0)
},
completion: { finished in
src.present(dst, animated: false, completion: nil)
}
)
}
}
我将故事板中的一些转场更改为这个自定义转场。将我的初始视图控制器连接到导航控制器的 segue 然后连接到另一个视图控制器正常运行。但是,当执行不同的 segue 时,会出现动画,但屏幕会立即冻结。
模拟器冻结后,在 SegueFromLeft 类中标记此行的错误:
src.present(dst, animated: false, completion: nil)
错误消息指出“线程 1:EXC_BAD_ACCESS (code=2, address=0x7ffee5c39fb8)”,我认为这与内存分配有关,但不知道如何修复它或为什么会发生。
非常感谢减轻此错误的所有帮助。
谢谢!
解决方案
推荐阅读
- reactjs - Sanity PatchEvent 函数对它们的作用不是很清楚
- python - 为什么 python pip install 给我错误 SSLCertVerificationError SSL 错误消息
- php - 解析错误:语法错误,意外“进入”(T_STRING)
- uwp - UWP 应用程序 - 在 LOB 和公共 Windows 商店帐户中发布相同的应用程序
- reactjs - 如何在刷新页面后实时更新数组(Redux)
- json - 带有嵌套 JSON 的 Pandas json_normalize
- java - 无法使用 Java 启动 Activemq
- javascript - window.open(url, target) 不会激活 Firefox 中的选项卡
- angular - Angular 7 - 如何强制 API 调用在进行额外的 API 调用之前等待 HTTPInterceptor 完成?
- python - Python RegEx在开始时将文件路径与小写目录匹配