Adopts automatic status bar tinting on iOS 17 for App + Source detail screens

This commit is contained in:
Riley Testut
2023-12-07 16:50:31 -06:00
committed by Magesh K
parent 3773a051ab
commit be31611cb7
2 changed files with 34 additions and 6 deletions

View File

@@ -48,7 +48,15 @@ final class AppViewController: UIViewController
private var _preferredStatusBarStyle: UIStatusBarStyle = .default private var _preferredStatusBarStyle: UIStatusBarStyle = .default
override var preferredStatusBarStyle: UIStatusBarStyle { override var preferredStatusBarStyle: UIStatusBarStyle {
return _preferredStatusBarStyle if #available(iOS 17, *)
{
// On iOS 17+, .default will update the status bar automatically.
return .default
}
else
{
return _preferredStatusBarStyle
}
} }
override func viewDidLoad() override func viewDidLoad()
@@ -389,7 +397,10 @@ private extension AppViewController
self._preferredStatusBarStyle = .default self._preferredStatusBarStyle = .default
} }
self.navigationController?.setNeedsStatusBarAppearanceUpdate() if #unavailable(iOS 17)
{
self.navigationController?.setNeedsStatusBarAppearanceUpdate()
}
} }
func hideNavigationBar() func hideNavigationBar()
@@ -402,7 +413,10 @@ private extension AppViewController
self._preferredStatusBarStyle = .lightContent self._preferredStatusBarStyle = .lightContent
self.navigationController?.setNeedsStatusBarAppearanceUpdate() if #unavailable(iOS 17)
{
self.navigationController?.setNeedsStatusBarAppearanceUpdate()
}
} }
// Copied from HeaderContentViewController // Copied from HeaderContentViewController

View File

@@ -65,7 +65,15 @@ class HeaderContentViewController<Header: UIView, Content: ScrollableContentView
} }
override var preferredStatusBarStyle: UIStatusBarStyle { override var preferredStatusBarStyle: UIStatusBarStyle {
return _preferredStatusBarStyle if #available(iOS 17, *)
{
// On iOS 17+, .default will update the status bar automatically.
return .default
}
else
{
return _preferredStatusBarStyle
}
} }
private var _preferredStatusBarStyle: UIStatusBarStyle = .default private var _preferredStatusBarStyle: UIStatusBarStyle = .default
@@ -478,7 +486,10 @@ private extension HeaderContentViewController
self._preferredStatusBarStyle = .default self._preferredStatusBarStyle = .default
} }
self.navigationController?.setNeedsStatusBarAppearanceUpdate() if #unavailable(iOS 17)
{
self.navigationController?.setNeedsStatusBarAppearanceUpdate()
}
} }
func hideNavigationBar() func hideNavigationBar()
@@ -491,7 +502,10 @@ private extension HeaderContentViewController
self._preferredStatusBarStyle = .lightContent self._preferredStatusBarStyle = .lightContent
self.navigationController?.setNeedsStatusBarAppearanceUpdate() if #unavailable(iOS 17)
{
self.navigationController?.setNeedsStatusBarAppearanceUpdate()
}
} }
func updateNavigationBarAppearance(isHidden: Bool) func updateNavigationBarAppearance(isHidden: Bool)