Post

Replies

Boosts

Views

Activity

Reply to SwiftUI: Hiding the status bar with TabView and nested NavigationView's
I found the only way to get this to work per view is to wrap your rootView in a HostingController like: class HostingController<ContentView>: UIHostingController<ContentView> where ContentView : View {          init(view: ContentView) {         super.init(rootView: view)         NotificationCenter.default.addObserver(forName: .onDarkStatusBar, object: nil, queue: .main) { _ in             self.statusBarEnterDarkBackground()         }                  NotificationCenter.default.addObserver(forName: .onLightStatusBar, object: nil, queue: .main) { _ in             self.statusBarEnterLightBackground()         }                  NotificationCenter.default.addObserver(forName: .onShowStatusBar, object: nil, queue: .main) { _ in             self.statusBarShow()         }                  NotificationCenter.default.addObserver(forName: .onHideStatusBar, object: nil, queue: .main) { _ in             self.statusBarHide()         }     }          @objc required dynamic init?(coder aDecoder: NSCoder) {         fatalError("init(coder:) has not been implemented")     }          private var isDarkContentBackground = false     private var isStatusBarHiden = false     func statusBarEnterDarkBackground() {         isDarkContentBackground = false         setNeedsStatusBarAppearanceUpdate()     }     func statusBarEnterLightBackground() {         isDarkContentBackground = true         setNeedsStatusBarAppearanceUpdate()     }          func statusBarHide() {         isStatusBarHiden = true         setNeedsStatusBarAppearanceUpdate()     }     func statusBarShow() {         isStatusBarHiden = false         setNeedsStatusBarAppearanceUpdate()     }     override var preferredStatusBarStyle: UIStatusBarStyle {         if isDarkContentBackground {             return .lightContent         }         else         {             return .darkContent         }     }          override var prefersStatusBarHidden: Bool {       return isStatusBarHiden     } } Use as let window = UIWindow(windowScene: windowScene)             window.rootViewController = HostingController(view: contentView) Then send out a notification from onDissapear and onAppear. extension Notification.Name {   static let onDarkStatusBar = Notification.Name("onDarkStatusBar")     static let onLightStatusBar = Notification.Name("onLightStatusBar")     static let onHideStatusBar = Notification.Name("onHideStatusBar")     static let onShowStatusBar = Notification.Name("onShowStatusBar") } Using                             .onAppear {                                 NotificationCenter.default.post(name: Notification.Name.onHideStatusBar, object: nil)                             }                             .onDisappear {                                 NotificationCenter.default.post(name: Notification.Name.onShowStatusBar, object: nil)                             }
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Aug ’21
Reply to ARView perspective camera not working in iOS18 Beta
Specifically I'm doing private let camera = PerspectiveCamera() camera.camera.fieldOfViewInDegrees = cameraFieldOfVewInDegrees let cameraAnchor = AnchorEntity(world: .zero) cameraAnchor.addChild(camera) arView?.scene.addAnchor(cameraAnchor)
Replies
Boosts
Views
Activity
Aug ’24
Reply to Redeeming code stucks very often after pressing "Redeem offer code"
So I'mon iOS 16.3 and this issue seems to still be here. Did anyone find any solution to this?
Topic: App & System Services SubTopic: StoreKit Tags:
Replies
Boosts
Views
Activity
Feb ’23
Reply to SwiftUI NavigationView pops back when updating observableObject
Works a treat, thanks a lot. Of stuck on this for some hours.
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
Boosts
Views
Activity
Oct ’22
Reply to Crash on iOS 14 when using @available(iOS 15.0, *) @FocusState variable in SwiftUI
Is there any workaround, also seeing this issue?
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
Boosts
Views
Activity
Apr ’22
Reply to SwiftUI: Hiding the status bar with TabView and nested NavigationView's
I found the only way to get this to work per view is to wrap your rootView in a HostingController like: class HostingController<ContentView>: UIHostingController<ContentView> where ContentView : View {          init(view: ContentView) {         super.init(rootView: view)         NotificationCenter.default.addObserver(forName: .onDarkStatusBar, object: nil, queue: .main) { _ in             self.statusBarEnterDarkBackground()         }                  NotificationCenter.default.addObserver(forName: .onLightStatusBar, object: nil, queue: .main) { _ in             self.statusBarEnterLightBackground()         }                  NotificationCenter.default.addObserver(forName: .onShowStatusBar, object: nil, queue: .main) { _ in             self.statusBarShow()         }                  NotificationCenter.default.addObserver(forName: .onHideStatusBar, object: nil, queue: .main) { _ in             self.statusBarHide()         }     }          @objc required dynamic init?(coder aDecoder: NSCoder) {         fatalError("init(coder:) has not been implemented")     }          private var isDarkContentBackground = false     private var isStatusBarHiden = false     func statusBarEnterDarkBackground() {         isDarkContentBackground = false         setNeedsStatusBarAppearanceUpdate()     }     func statusBarEnterLightBackground() {         isDarkContentBackground = true         setNeedsStatusBarAppearanceUpdate()     }          func statusBarHide() {         isStatusBarHiden = true         setNeedsStatusBarAppearanceUpdate()     }     func statusBarShow() {         isStatusBarHiden = false         setNeedsStatusBarAppearanceUpdate()     }     override var preferredStatusBarStyle: UIStatusBarStyle {         if isDarkContentBackground {             return .lightContent         }         else         {             return .darkContent         }     }          override var prefersStatusBarHidden: Bool {       return isStatusBarHiden     } } Use as let window = UIWindow(windowScene: windowScene)             window.rootViewController = HostingController(view: contentView) Then send out a notification from onDissapear and onAppear. extension Notification.Name {   static let onDarkStatusBar = Notification.Name("onDarkStatusBar")     static let onLightStatusBar = Notification.Name("onLightStatusBar")     static let onHideStatusBar = Notification.Name("onHideStatusBar")     static let onShowStatusBar = Notification.Name("onShowStatusBar") } Using                             .onAppear {                                 NotificationCenter.default.post(name: Notification.Name.onHideStatusBar, object: nil)                             }                             .onDisappear {                                 NotificationCenter.default.post(name: Notification.Name.onShowStatusBar, object: nil)                             }
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
Boosts
Views
Activity
Aug ’21