gpt4 book ai didi

SwiftUI navigationBarItems 在 TabView 中消失

转载 作者:行者123 更新时间:2023-12-04 10:19:33 24 4
gpt4 key购买 nike

我有一个包含导航栏项目的 View ,并将该 View 嵌入到 TabView 中。但这样做时,栏项目不再出现。如果我在 TabView 之外调用 View ,一切都会按预期工作。

下面是一个小示例项目来说明我的问题,请注意, TabView 不是在最初的 ContentView 上调用的,而是在稍后调用的:

import SwiftUI

struct ContentView: View {
var body: some View {
NavigationView{
NavigationLink(destination: WarehouseOrderTabView()){
Text("Click me")
}
}
}
}

struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}

struct WarehouseOrderTabView: View {
var body: some View {
TabView{
TabView1().navigationBarTitle("Dashboard")
.tabItem {
Image(systemName: "gauge")
Text("Dashboard")
}

TabView2().navigationBarTitle("Orders")
.tabItem {
Image(systemName: "list.dash")
Text("Orders")
}
}
}
}

struct TabView1: View {
var body: some View {
Text("TabView 1")
//I would expect to see those bar items when displaying tab 1
.navigationBarItems(trailing: (
HStack{
Button(action: {
}, label: {
Image(systemName: "arrow.clockwise")
.font(.title)
})
.padding(.init(top: 0, leading: 0, bottom: 0, trailing: 20))
Button(action: {

}, label: {
Image(systemName: "slider.horizontal.3")
.font(.title)
})
}
))
}
}

struct TabView2: View {
var body: some View {
Text("TabView 2")
}
}


我在这里缺少什么?

最佳答案

NavigationView 可以嵌入到 TabView 中,反之则不然。

TabView 包含不同的 tabItem()(最多 5 个),可以包含您的 View 。

这就是您如何使用它。

TabView1.swift

struct TabView1: View {
var body: some View {
NavigationView {
Text("TabView 1")
.navigationBarTitle("Dashboard")
.navigationBarItems(trailing:
HStack {
Button(action: {
// more code here
}) {
Image(systemName: "arrow.clockwise")
.font(.title)
}
Button(action: {
// more code here
}) {
Image(systemName: "slider.horizontal.3")
.font(.title)
}
}
)
}
}
}

TabView2.swift

struct TabView2: View {
var body: some View {
NavigationView {
NavigationLink(destination: YourNewView()) {
Text("TabView 1")
}
.navigationBarTitle("Orders")
}
}
}

ContentView.Swift

import SwiftUI

struct ContentView: View {
var body: some View {
TabView {
TabView1()
.tabItem {
Image(systemName: "gauge")
Text("Dashboard")
}
TabView2()
.tabItem {
Image(systemName: "list.dash")
Text("Orders")
}
}
}
}

希望有帮助:)

关于SwiftUI navigationBarItems 在 TabView 中消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60924367/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com