|
|
|
@ -0,0 +1,48 @@ |
|
|
|
// |
|
|
|
// Created by Marco Schmickler. |
|
|
|
// Copyright (c) 2023 Marco Schmickler. All rights reserved. |
|
|
|
// |
|
|
|
|
|
|
|
import UIKit |
|
|
|
|
|
|
|
class SceneDelegate: UIResponder, UIWindowSceneDelegate, UISplitViewControllerDelegate { |
|
|
|
|
|
|
|
var window: UIWindow? |
|
|
|
|
|
|
|
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { |
|
|
|
guard let _ = scene as? UIWindowScene else { return } |
|
|
|
setupSplitViewController() |
|
|
|
} |
|
|
|
|
|
|
|
func sceneDidBecomeActive(_ scene: UIScene) { |
|
|
|
NetworkManager.sharedInstance.alive() |
|
|
|
} |
|
|
|
|
|
|
|
func sceneDidEnterBackground(_ scene: UIScene) { |
|
|
|
(UIApplication.shared.delegate as? AppDelegate)?.saveContext() |
|
|
|
} |
|
|
|
|
|
|
|
private func setupSplitViewController() { |
|
|
|
guard let split = window?.rootViewController as? UISplitViewController else { return } |
|
|
|
|
|
|
|
let detailNav = split.viewControllers[split.viewControllers.count - 1] as! UINavigationController |
|
|
|
detailNav.topViewController!.navigationItem.leftBarButtonItem = split.displayModeButtonItem |
|
|
|
split.delegate = self |
|
|
|
|
|
|
|
let masterNav = split.viewControllers[0] as! UINavigationController |
|
|
|
let controller = masterNav.topViewController as! MasterViewController |
|
|
|
controller.delegate = NetworkDelegate() |
|
|
|
controller.model.items = LocalManager.sharedInstance.model!.items |
|
|
|
} |
|
|
|
|
|
|
|
// MARK: - Split view |
|
|
|
|
|
|
|
func splitViewController(_ splitViewController: UISplitViewController, collapseSecondary secondaryViewController: UIViewController, onto primaryViewController: UIViewController) -> Bool { |
|
|
|
if let nav = secondaryViewController as? UINavigationController, |
|
|
|
let detail = nav.topViewController as? DetailViewController, |
|
|
|
detail.detailItem == nil { |
|
|
|
return true |
|
|
|
} |
|
|
|
return false |
|
|
|
} |
|
|
|
} |