嵌入到NavigationView中的视图(后者隐藏了navBar),每次将其推到视图[SwiftUI]]时都会出现故障。

问题描述 投票:2回答:1
过去一个小时,我一直在为此苦苦挣扎,主要是因为我看到的所有解决方案似乎都比真正的解决方案更具破解性,这使我对SwiftUI在SwiftUI中的生产准备情况提出了质疑。

我有一个MainView和PushView,我需要在两个View上都隐藏navBar。但是,这会产生以下问题:

1]将PushView推入MainView时,导航栏出现故障,然后消失。

2)现在无法返回MainView,因为PushView中的后退按钮也已隐藏。

我想要的是PushView中我自己的按钮,它会弹出该视图并返回HomeView

我在做什么错:

struct HomeView: View { var body: some View { NavigationView { NavigationLink(destination: PushView()) { Text("PRESSME") }.navigationBarTitle("") .navigationBarHidden(true) } } } struct PushView: View { var body: some View { Text("Hello View Two") } }

过去一个小时,我一直在为此苦苦挣扎,主要是因为我看到的所有解决方案似乎都比真正的解决方案更具破解性,这使我对...的生产就绪性提出了疑问。] >> 

是的,由于您已经体验过NavBar,所以它有点越野车。

在我看来,一个没有恶意的干净解决方案看起来像这样:

struct HomeView: View { var body: some View { NavigationView { NavigationLink(destination: PushView()) { Text("PRESSME") }.navigationBarTitle("") .navigationBarHidden(true) } } } struct PushView: View { @Environment(\.presentationMode) var presentationMode var btnBack : some View { Button(action: { self.presentationMode.wrappedValue.dismiss() }) { Image(systemName: "chevron.left") } } var body: some View { VStack { HStack { btnBack // Your custom back button. .padding() Spacer() } Spacer() Text("Hello View Two") Spacer() } .navigationBarTitle("") .navigationBarHidden(true) // This hides the NavBar on PushView. } }

swiftui uinavigationbar swiftui-navigationlink
1个回答
0
投票
是的,由于您已经体验过NavBar,所以它有点越野车。
© www.soinside.com 2019 - 2024. All rights reserved.