如何动态更改SwiftUI导航栏项目?
我在NavigationView中有一个TabView,我希望导航栏项目根据所选的选项卡进行更改。然而,我很难决定如何使用.onAppear()来更改这一点,假设这就是您应该做的事情。
我的代码目前布局如下:
var body: some View {
NavigationView {
TabView {
contentWithNavigationButtons()
.tabItem {
Image(systemName: "house")
Text("Buttons")
}
contentWithoutNavigationButtons()
.tabItem {
Image(systemName: "person")
Text("No Buttons")
}
.onAppear {
//Navigation Bar Items should be removed
}
}
.navigationBarItems(trailing: someButton)
}发布于 2020-10-10 13:27:00
这是一个可能的解决方案的演示-添加跟踪选项卡选择,并根据选项卡选择制作按钮。使用Xcode12/ iOS 14进行测试
struct DemoView: View {
@State private var selection = 0 // << here !!
var body: some View {
NavigationView {
TabView(selection: $selection) {
contentWithNavigationButtons()
.tabItem {
Image(systemName: "house")
Text("Buttons")
}.tag(0) // << here !!
contentWithoutNavigationButtons()
.tabItem {
Image(systemName: "person")
Text("No Buttons")
}.tag(1)
}
.navigationBarItems(trailing: Group {
if selection == 0 { // << here !!
Button("Some"){}
}
})
}
}
}https://stackoverflow.com/questions/64289908
复制相似问题