【问题标题】:SwiftUI navigation titles within TabViewTabView 中的 SwiftUI 导航标题
【发布时间】:2021-11-29 20:58:08
【问题描述】:

由于这个问题SwiftUI TabView brightness views vertical location 中概述的答案中概述的原因,我的应用程序的菜单结构是NavigationView -> TabView -> 具有不同导航标题的子视图。

问题在于.navigationTitle 为整个 TabView 提供一个导航标题,而不是为每个子视图提供一个导航标题。如何有多个带有TabView 的导航标题,每个子视图一个?

struct ContentView: View {
    var body: some View {
        NavigationView {
            TabView {
                Text("Hello")
                    .navigationTitle("Title One")
                    .tabItem {
                        Image(systemName: "square.stack")
                }
                Text("Hello Again")
                    .navigationTitle("Title Two")
                    .tabItem {
                        Image(systemName: "checkmark.square")
                }
            }
        }
    }
}

【问题讨论】:

    标签: swiftui swiftui-navigationlink swiftui-navigationview swiftui-tabview


    【解决方案1】:

    我们可以根据选项卡选择来定义标题。下面是一个简单的方法演示。使用 Xcode 13 / iOS 15 测试

    struct ContentView: View {
        @State var selection = 1
    
        var body: some View {
            NavigationView {
                TabView(selection: $selection) {
                    Text("Hello")
                        .tabItem {
                            Image(systemName: "square.stack")
                    }.tag(1)
                    Text("Hello Again")
                        .tabItem {
                            Image(systemName: "checkmark.square")
                    }.tag(2)
                }
                .navigationTitle(selection == 1 ? "First" : "Second") // << here !!
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-15
      • 2020-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多