我想在应用程序启动后实例化一次 ViewController。所以我实例化了 Controller 但是我得到了一个奇怪的错误
Could not cast value of type 'erkeb.HomeVC' (0x100bd8738) to 'erkeb.ContainerVC' (0x100bd8990)
有人可以告诉我如何解决这个问题吗?
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
fileprivate var containerVC = ContainerVC()
var MenuContainerVC: ContainerVC{
return containerVC
}
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
FirebaseApp.configure()
containerVC = ContainerVC()
window = UIWindow(frame: UIScreen.main.bounds)
let sb = UIStoryboard(name: "Main", bundle: nil)
var intialViewController = sb.instantiateViewController(withIdentifier: "WelkomVC")
let userDefaults = UserDefaults.standard
if userDefaults.bool(forKey: "WelkomIntroIsOk"){
intialViewController = sb.instantiateInitialViewController() as! ContainerVC
}
window?.rootViewController = intialViewController
window?.makeKeyAndVisible()
//normaal juist onder lijn 28 maar menu schuift niet open
// window?.rootViewController = containerVC
// window?.makeKeyAndVisible()
return true
}
最佳答案
您不需要将 sb.instantiateInitialViewController()
转换为 ContainerVC
。如果 UserDefaults
值为 true,则以编程方式创建 ContainerVC
实例并在 intialViewController
中分配。 ContainerVC
将被指定为 Root View Controller 。
if userDefaults.bool(forKey: "WelkomIntroIsOk") {
intialViewController = ContainerVC()
}
关于ios - 我无法施放 initialViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56331181/