简介:我有一个欢迎屏幕,基本上有一个按钮,并导航到一个TabView,其中有应用程序的所有屏幕。
问题:WelcomeScreen只在应用程序第一次打开时加载,这意味着,一旦用户导航到TabView,我想隐藏“返回”按钮,我认为我已经实现了,但navigationTitle没有出现。不会出现“后退”按钮,也不会出现navigationTitle和工具栏。我不明白为什么我已经被困在这里两天了。
WelcomeScreen导航代码:
.navigationDestination(isPresented: $navigateToOverviewScreen) {
TabNavigation()
}
字符串
TabView的代码:
struct TabNavigation: View {
var body: some View {
TabView {
OverviewScreen()
.tabItem {
Image(systemName: "list.bullet.clipboard")
Text("overview")
}
SettingsScreen()
.tabItem {
Image(systemName: "gear")
Text("settings")
}
}
.navigationBarBackButtonHidden(true)
.accentColor(.black)
}
型
}
第一个屏幕的代码,即OverviewScreen:
struct OverviewScreen: View {
@StateObject private var viewModel: OverviewViewModel = OverviewViewModel()
@State private var navigateToAddPillScreen: Bool = false
var body: some View {
NavigationStack {
mainView
.toolbar {
ToolbarItem {
AddPillButton {
navigateToAddPillScreen.toggle()
}
}
}
.sheet(isPresented: $navigateToAddPillScreen, content: {
AddPillScreen {
viewModel.getPills()
self.navigateToAddPillScreen.toggle()
}
})
.onAppear {
viewModel.getPills()
}
.navigationTitle("overview")
}
}
@ViewBuilder private var mainView: some View {
if viewModel.viewState.isListEmpty {
EmptyListView()
} else {
List {
Section("today") {
ForEach(viewModel.pills, id: \.id) { pill in
PillItem(pill: pill)
}
}
}
}
}
型
}
正如您所看到的,viewModifier .navigationTitle已设置。
一旦我将应用程序发送到后台并将其打开,就会出现navigationTitle。
救命啊!
1条答案
按热度按时间bd1hkmkf1#
不知道你有没有发现我也有类似的问题。在我的应用程序中,我在定义它的Nav Stack中 Package 了相当于'mainView'的内容,并在其中应用了导航标题,它以应有的方式工作。比如我做了...
字符串