【问题标题】:Present a view modally from a TabView in SwiftUI [duplicate]从 SwiftUI 中的 TabView 模态显示视图 [重复]
【发布时间】:2020-04-11 20:37:49
【问题描述】:

我想在标签栏中以模态方式呈现其中一个视图。 与点击 + 按钮时 Instagram 所做的类似。

示例代码:

    TabView {
            Text("List")
                .tabItem {
                    Image(systemName: "list.bullet")
                    Text("List")
                }
            Text("Add") // I would like this view to be presented modally
                .tabItem {
                    Image(systemName: "plus.app.fill")
                    Text("Add")
                }
        }

我正在寻找在SwiftUI 中使用TabView 的本地方法。 我知道我可以编写自己的 TabBar,但我想看看是否有人知道如何使用 TabView 中的构建来做到这一点

谢谢

【问题讨论】:

    标签: swift xcode swiftui


    【解决方案1】:

    TabView 提供了一个名为selection 的可选参数,它允许您定义与包含当前选定选项卡的变量的绑定。您使用某种类型来表示视图,为TabView 提供与该类型的绑定,然后使用该类型的值标记每个选项卡的视图。如果需要,您可以使用 Ints,但由于我更喜欢​​更明确一点,因此我使用了枚举:

    struct ContentView: View {
        enum Tab {
            case list, add
        }
    
        @State private var selectedTab: Tab = .list
    
        var body: some View {
            TabView(selection: $selectedTab) {
                VStack {
                    Text("List")
                    Button(action: {
                        self.selectedTab = .add
                    }, label: {
                        Text("Switch to Add tab")
                    })
                }
                    .tabItem {
                        Image(systemName: "list.bullet")
                        Text("List")
                    }
                    .tag(Tab.list)
                Text("Add") // I would like this view to be presented modally
                    .tabItem {
                        Image(systemName: "plus.app.fill")
                        Text("Add")
                    }
                    .tag(Tab.add)
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2020-04-16
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 2020-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多