xcode 在SwiftUI中导航时导航标题不显示

mu0hgdu0  于 2023-08-07  发布在  Swift
关注(0)|答案(1)|浏览(143)

简介:我有一个欢迎屏幕,基本上有一个按钮,并导航到一个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。
救命啊!

bd1hkmkf

bd1hkmkf1#

不知道你有没有发现我也有类似的问题。在我的应用程序中,我在定义它的Nav Stack中 Package 了相当于'mainView'的内容,并在其中应用了导航标题,它以应有的方式工作。比如我做了...

@Viewbuilder private var mainView: some View{
 NavigationStack{ 
    Content()
      .navigationTitle("..")
  }
}

字符串

相关问题