我创建了一个自定义的UITabBarController来避免SwiftUI标签栏的一些不足。查看更多 此处. 这里是我实现它的地方。
import SwiftUI
struct HomeView: View {
@EnvironmentObject var appState: AppState
var body: some View {
UITabBarWrapper([
TabBarElement(tabBarElementItem:
TabBarElementItem(title: "Learn", systemImageName: "book")) {
NewsView()
},
TabBarElement(tabBarElementItem:
TabBarElementItem(title: "Matches", systemImageName: "heart")) {
MatchesTab().environmentObject(AppState())
},
TabBarElement(tabBarElementItem:
TabBarElementItem(title: "Account", systemImageName: "person")) {
ProfileView()
}
])
.frame(maxHeight: .infinity)
.edgesIgnoringSafeArea(.top)
}
}
在这里我实现了: MatchesTab()
是一个 NavigationView
:
import SwiftUI
struct MatchesTab: View {
@EnvironmentObject var appState: AppState
@State private var showingCandidate = false
var body: some View {
NavigationView {
if self.appState.hasTakenQuiz {
MatchesTabDefaultView()
.transition(.opacity)
.animation(.default)
} else {
SplashView()
}
}
}
}
由于某些原因,这个灰色空间出现在嵌入的 MatchesTab
:
另一个要注意的问题是:问题似乎是出在《公约》上。NavigationView
. 当它被移除时,灰条会消失