六页选项卡视图:选项卡 6 上的工作表将视图重置为选项卡 4

问题描述 投票:0回答:1

虽然之前已经问过工作表重置 TabView 的问题,但我似乎遇到了一个与我们有超过 5 个选项卡的设置有关的问题。

我在使用 6 页 TabView 布局时遇到问题,并且在第 6 页上启动了 .sheet。当我启动应用程序并浏览选项卡到第 6 页时,穿过“附加“更多”页面,然后在选项卡 6 上启动工作表我被重置到选项卡 4。有任何提示我做错了什么吗?选项卡标记正确,$selection 似乎也是正确的,这是其他帖子的提示。

示例代码在这里:

import SwiftUI

struct ContentView: View {
    
    @State var selection = 0
    
    var body: some View {
        TabView(selection: $selection){
            
            Text("page 1")
                .tabItem { Text("page 1") }.tag(0)
            
            Text("page 2")
                .tabItem { Text("page 2") }.tag(1)
            
            Text("page 3")
                .tabItem { Text("page 3") }.tag(2)
            
            Text("page 4")
                .tabItem { Text("page 4") }.tag(3)
            
            Text("page 5")
                .tabItem { Text("page 5") }.tag(4)
            
            MyPage6()
                .tabItem { Text("page 6") }.tag(5)
            
        }
    }
}

#Preview {
    ContentView()
}


struct MyPage6: View {
    
    @State var showSheet = false
    var body: some View {
        VStack{
            Text("page 6")
            Button("Show sheet") {
                showSheet.toggle()
            }
        }
        .sheet(isPresented: $showSheet){
            Text("this is my sheet on page 6.")
        }
    }
}
swiftui swiftui-tabview
1个回答
0
投票

这看起来确实有问题。在 iPhone 15 Pro 模拟器和真实设备(iPhone 14 Pro Max)上运行,选项卡 5 和标签 6 都显示在自动生成的“更多”选项卡上。当我第一次点击它时,选择第 6 页并激活该工作表,选项卡视图返回到 最后使用的非“更多” 选项卡。我猜如果您先按顺序尝试了所有选项,您就会看到选项卡 4。

“更多”选项卡保留了所显示页面的记忆 - 因此,如果我单击返回,我会看到第 6 页,而不是第 5 页和第 6 页的列表。在该视图中激活工作表,然后将第 6 页保留在后台。

您应该使用反馈助手应用程序或https://feedbackassistant.apple.com/向Apple报告此情况。

同时,我还建议考虑一下 Apple 的指南对溢出选项卡的使用有何规定

尽可能避免溢出选项卡。根据设备尺寸和方向,可见选项卡的数量可能小于选项卡总数。如果水平空间限制了可见选项卡的数量,则尾随选项卡将变为“更多”选项卡,在单独的屏幕上显示列表中的剩余项目。 “更多”选项卡使人们更难访问和注意到隐藏选项卡上的内容,因此请尝试限制应用程序中可能发生这种情况的场景。

© www.soinside.com 2019 - 2024. All rights reserved.