我在故事板中有视图控制器,只有地图视图。
class MapVC: UIViewController {
class func viewController () -> MapVC {
let storyboard = UIStoryboard(name: "Dashboard", bundle: nil)
return storyboard.instantiateViewController(withIdentifier: "MapVC") as! MapVC
}
override func viewDidLoad() {
super.viewDidLoad()
}
}
Run Code Online (Sandbox Code Playgroud)
我有简单的登录屏幕
在登录按钮操作时,我调用此方法
private func addChildVC (_ vc:UIViewController) {
self.removeAllChild()
self.addChild(vc)
vc.view.frame = self.view.bounds
self.view.addSubview(vc.view)
vc.didMove(toParent: self)
self.currentCenterViewController = vc
}
Run Code Online (Sandbox Code Playgroud)
和
MapVC.viewController()
Run Code Online (Sandbox Code Playgroud)
应用程序崩溃
vc.view.frame = self.view.bounds
Run Code Online (Sandbox Code Playgroud)
奇怪的是,如果我像附加调试器一样调试,当我按下登录应用程序时没有崩溃,但是当调试器未在启动时附加,然后我在模拟器中启动应用程序然后附加进程,当我按下登录按钮时应用程序崩溃
当前视图控制器也无法正常工作导致应用程序崩溃
如果我从故事板应用程序中删除 Mapview 在这两种情况下都可以正常工作
当我检查vc.isViewLoaded返回时false
试过 loadViewIfRequired() 清理派生数据,清理项目重启 xcode。验证我是否添加了正确的标识符
我无法理解原因 请帮助
编辑
示例应用程序
https://drive.google.com/open?id=1-otaZhhhDEH4p29CgQP7xZSX9tizceq8
重现步骤
1) 在 ios 12 的任何模拟器中运行
2) 从 xcode 按下停止
3) 从模拟器启动应用程序
4) 按下按钮
编辑2
问题视频https://drive.google.com/file/d/1z9C3Re_oVYkRncnE22xRoef2Kv2WyzId/view
我不知道实际问题是什么以及您的应用程序崩溃的原因。但我找到了解决方案。在Link Binary With Libraries 中添加MapKit.framework将解决您的问题。
我希望这能帮到您。
| 归档时间: |
|
| 查看次数: |
276 次 |
| 最近记录: |