I am trying to passing my managedObjectContext
to the next controller.
I innate a UIWindow
instance in my appDelegate file, as I need to obtain my stand by controller.
However, Xcode said my UIWindow
instance is nil.
This id my code:
lazy var managedObjectContext: NSManagedObjectContext = persistentContainer.viewContext
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
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
}
It is a bit strange. How to resolve this? Thanks in advance.
IOS 13 window is inside SceneDelegate while prior to 13 is inside AppDelegate
Move code inside SceneDelegate
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
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
}
}
var window: UIWindow?
in your AppDelegate.swift
.SceneDelegate.swift
from your files.Application Scene Manifest
from Info.plist
.window
object in your AppDelegate.swift
as you want.If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With