enter image description here根据屏幕截图,我试图将 UITabBarController 设置为我的 Root View Controller 。在 Storyboard中,UITabBarController 是我最初的 VC,但我遇到了这个问题。
如果选项卡栏 Controller 是我的初始 View Controller ,我会检查 Storyboard ,如果我在打开任何东西时搞砸了。
let tabController = window!.rootViewController as! UITabBarController
if let tabViewControllers = tabController.viewControllers {
let navController = tabViewControllers[0] as! UINavigationController
let controller = navController.viewControllers.first as! CurrentLocationViewController
controller.managedObjectContext = managedObjectContext
}
return true
}
预期:顺利运行 实际结果:应用程序启动,启动时崩溃。我收到以下错误: 线程一个 fatal error :在解包可选时意外发现 nil。
最佳答案
该行崩溃是因为窗口为零或 View Controller 不是 UITabBarController。如果您删除 didFinishLaunchingWithOptions 中的代码,您的应用程序是否会在不崩溃的情况下加载并显示您期望的 View Controller ?
如果是这样,也许可以尝试移动代码以在 CurrentLocationViewController 的 viewDidLoad 方法中设置托管对象上下文:
let appDelegate = UIApplication.shared.delegate as! AppDelegate
managedObjectContext = appDelegate.managedObjectContext
如果应用仍然崩溃或没有显示您期望的选项卡式 View Controller ,则您可能没有正确设置初始 View Controller 。
关于ios - 将 UITabBarController 设置为 Root View Controller 时如何修复应用程序委托(delegate)中的 "Unexpectedly found nil",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56759741/