SwiftUI - после перемещения приложения в фоновый режим и последующего восстановления на передний план TabView теряет цвет
У меня есть многоплатформенное приложение SwiftUI 5.3 в Xcode 12.2 на MacOS 11.01, работающее на iOS 14.2, которое использует настраиваемый цветовой ресурс для светлого / темного режимов. При запуске приложение отлично работает, переключаясь между светлым и темным режимами. Соответственно меняются все цвета.
Однако в темном режиме, если я перемещаю приложение в фоновый режим и выношу другое приложение на передний план, а затем возвращаюсь в свое приложение (восстановление из фонового режима), цвет TabView полностью стирается. NavigationView наверху работает нормально, как и ожидалось. Если я затем переключусь в режим освещения, для TabView появится правильный цвет режима освещения. При переключении обратно в темный режим восстанавливаются правильные цвета TabView в темном режиме. Если я снова переведу приложение в фоновый режим, посмотрю на другое приложение, а затем верну свое приложение на передний план, цвет TabView снова станет размытым.
Я пробовал бесчисленное количество вещей с цветными вызовами, используя
init
и
.onAppear
, но это поведение ничем не исправлено.
Есть предположения? Спасибо, что нашли время помочь мне разобраться в этом.
Отредактировано для большей ясности. Код добавлен сюда:
import SwiftUI
struct TabbedView: View {
init() {
UINavigationBar.appearance().titleTextAttributes = [NSMutableAttributedString.Key.foregroundColor:UIColor(named: "mainTextColor") as Any]
UINavigationBar.appearance().barTintColor = UIColor(named: "barBackground")
UINavigationBar.appearance().tintColor = UIColor(named: "mainTextColor")
UITabBar.appearance().isOpaque = true
UITabBar.appearance().unselectedItemTintColor = UIColor(named: "unselectedTabColor")
UITabBar.appearance().barTintColor = UIColor(named: "barBackground")
}
var body: some View {
TabView {
ContentView()
.tabItem {
VStack {
Image("Topics69x69")
Text("Topics")
}
}.tag(0)
ChangesView()
.tabItem {
VStack {
Image("Changes69x69")
Text("Changes")
}
}.tag(1)
GospelView()
.tabItem {
VStack {
Image("Gospel69x69")
Text("Gospel")
}
}.tag(2)
CopyrightView()
.tabItem {
VStack {
Image("Copyright75x75")
Text("Copyright")
}
}.tag(3)
AboutView()
.tabItem {
VStack {
Image("About75x75")
Text("About")
}
}.tag(4)
} // TabView
// Sets color of the selected tab on the TabBar
.accentColor(Color("tabImageTintColor"))
} // View
} // Main View