我想用我的应用程序的init VC初始化我的核心数据堆栈。为了做到这一点,我希望将我创建的核心数据管理器加载到第一个VC中。在App Delegate中设置Init VC?
我认为这段代码有意义将coredatamanager传入VC,但是无论如何我写这段代码都会收到错误,我确定缺少一些简单的东西吗?
// Initialize Storyboard
let storyboard = UIStoryboard(name: "RoutineController", bundle: Bundle.main)
// Instantiate Initial View Controller
if let viewController = storyboard.instantiateInitialViewController() as? ViewController {
// Configure View Controller
viewController.coreDataManager = coreDataManager
// Set Root View Controller
window?.rootViewController = viewController
}
错误很简单:
使用未申报类型的 '视图控制器'
但是如果我删除“作为? ViewController'我得到一个错误,在viewController没有属性coreDataManager。
是否有某种委托我需要在视图控制器的viewdidload中定义发送到?
编辑修改我的代码以更正故事板ID,但{}内部的代码似乎并未执行,我得到了由于if发生故障而导致的打印错误,所以这仍然不是正确的方法设置viewController ...任何想法为什么?
// Initialize Storyboard
let storyboard = UIStoryboard(name: "Main", bundle: Bundle.main)
// Instantiate Initial View Controller
if let viewController = storyboard.instantiateInitialViewController() as? RoutineController {
// Configure View Controller
print("SENDING THIS INFO TO THE FIRST VC \(self.coreDataManager)")
viewController.coreDataManager = self.coreDataManager
// Set Root View Controller
window?.rootViewController = viewController
} else {
print("WE COULDNT SET VIEWCONTROLLER AS THE DESIGNATED VC SO MOC WASNT PASSED")
}
你确定你的故事板文件被称为RoutineController.storyboard? – lukwuerz
没有VC被称为RoutineController,故事板是主要的,更新了一个似乎现在可以工作的OP,如果任何人都可以验证这是准确的... – jwarris91