From 3f4a6c3c0c3c927c62c7065d8d30cb344d9771ec Mon Sep 17 00:00:00 2001 From: Aranda Morrison Date: Mon, 18 Jul 2022 15:49:08 +0800 Subject: [PATCH] Fix transparent navigation header for iOS 13 --- Source/Controllers/LIFENavigationController.m | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Source/Controllers/LIFENavigationController.m b/Source/Controllers/LIFENavigationController.m index 748a16a..10f3bed 100644 --- a/Source/Controllers/LIFENavigationController.m +++ b/Source/Controllers/LIFENavigationController.m @@ -114,6 +114,15 @@ - (void)_configureNavigationBarAppearance self.navigationBar.translucent = NO; [self.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault]; + // See https://developer.apple.com/forums/thread/682420 + if (@available(iOS 13.0, *)) { + UINavigationBarAppearance *nba = [[UINavigationBarAppearance alloc] init]; + [nba configureWithOpaqueBackground]; + nba.backgroundColor = appearance.barTintColor; + self.navigationBar.standardAppearance = nba; + self.navigationBar.scrollEdgeAppearance = self.navigationBar.standardAppearance; + } + UIBarButtonItem *barButtonItemAppearance = [UIBarButtonItem appearanceWhenContainedInInstancesOfClasses:@[[LIFENavigationBar class]]]; barButtonItemAppearance.tintColor = appearance.tintColor; [barButtonItemAppearance setTitleTextAttributes:@{NSForegroundColorAttributeName : appearance.tintColor} forState:UIControlStateNormal];