diff --git a/AltStore/LaunchViewController.swift b/AltStore/LaunchViewController.swift index 918b4c30..3e23189b 100644 --- a/AltStore/LaunchViewController.swift +++ b/AltStore/LaunchViewController.swift @@ -11,6 +11,7 @@ import SwiftUI import Roxas import EmotionalDamage import minimuxer +import Inject import AltStoreCore import UniformTypeIdentifiers @@ -44,7 +45,9 @@ final class LaunchViewController: RSTLaunchViewController, UIDocumentPickerDeleg // self.destinationViewController = self.storyboard!.instantiateViewController(withIdentifier: "tabBarController") as! TabBarController let rootView = RootView() .environment(\.managedObjectContext, DatabaseManager.shared.viewContext) - self.destinationViewController = UIHostingController(rootView: rootView) + // NOTE: Injection/HMR can be done directly from the SwiftUI side of things, however, it crashes the app when editing a view inside another view (such as the dev mode menu) + // A major downside to doing it from UIKit is that if we do it this way, the whole UI will reload when you make a change. If we do it from SwiftUI, it won't reload the entire UI. + self.destinationViewController = Inject.ViewControllerHost(UIHostingController(rootView: rootView)) } super.viewDidLoad() } diff --git a/AltStore/Views/RootView.swift b/AltStore/Views/RootView.swift index b59ec4e3..e96f0b3d 100644 --- a/AltStore/Views/RootView.swift +++ b/AltStore/Views/RootView.swift @@ -8,11 +8,8 @@ import SwiftUI import SFSafeSymbols -import Inject struct RootView: View { - @ObservedObject private var iO = Inject.observer - @State var selectedTab: Tab = .defaultTab var body: some View { @@ -29,7 +26,6 @@ struct RootView: View { } } .overlay(self.notificationsOverlay) - .enableInjection() } @ViewBuilder