私は TabView と、すべてのタブ項目に対して個別の NavigationView スタックを持っています。うまく動作しますが、NavigationLink を開くと、TabView バーがまだ表示されます。NavigationLink をクリックするたびに消えてほしいです。
struct MainView: View {
@State private var tabSelection = 0
var body: some View {
TabView(selection: $tabSelection) {
FirstView()
.tabItem {
Text("1")
}
.tag(0)
SecondView()
.tabItem {
Text("2")
}
.tag(1)
}
}
}
struct FirstView: View {
var body: some View {
NavigationView {
NavigationLink(destination: FirstChildView()) { // How can I open FirstViewChild with the TabView bar hidden?
Text("Go to...")
}
.navigationBarTitle("FirstTitle", displayMode: .inline)
}
}
}
TabView を NavigationView 内に配置する解決策を見つけたので、NavigationLink をクリックすると、TabView バーが非表示になります。しかし、これは Tab 項目の NavigationBarTitles を台無しにします。
struct MainView: View {
@State private var tabSelection = 0
var body: some View {
NavigationView {
TabView(selection: $tabSelection) {
...
}
}
}
}
struct FirstView: View {
var body: some View {
NavigationView {
NavigationLink(destination: FirstChildView()) {
Text("Go to...")
}
.navigationBarTitle("FirstTitle", displayMode: .inline) // This will not work now
}
}
}
このソリューションでは、TabView アイテムごとに異なる NavigationTabBars を持つ唯一の方法は、ネストされた NavigationViews を使用することです。ネストされた NavigationViews を正しく実装する方法があるのではないでしょうか? (私が知る限り、Navigation 階層には NavigationView が 1 つしかないはずです)。
SwiftUIでNavigationLinkビュー内のTabViewバーを正しく非表示にするにはどうすればよいですか?