首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在NavigationLink中设置editMode时,SwiftUI EditButton()不起作用

在NavigationLink中设置editMode时,SwiftUI EditButton()不起作用。

首先,NavigationLink是SwiftUI中用于导航到其他视图的控件。editMode是SwiftUI中用于启用或禁用编辑模式的环境变量。而EditButton()是一个特殊的按钮,它可以自动切换编辑模式。

然而,在某些情况下,如果我们在NavigationLink中设置editMode,并尝试在其中使用EditButton(),可能会发现EditButton()不会自动切换编辑模式。

解决这个问题的方法是手动切换编辑模式,而不是依赖EditButton()。可以通过设置NavigationView中的Toolbar来手动添加编辑按钮。以下是一个示例代码:

代码语言:txt
复制
struct ContentView: View {
    @State private var editMode = EditMode.inactive
    
    var body: some View {
        NavigationView {
            List {
                // 列表内容
            }
            .navigationBarTitle("列表")
            .toolbar {
                ToolbarItemGroup(placement: .navigationBarTrailing) {
                    if editMode == .inactive {
                        Button(action: {
                            editMode = .active
                        }) {
                            Text("编辑")
                        }
                    } else {
                        Button(action: {
                            editMode = .inactive
                        }) {
                            Text("完成")
                        }
                    }
                }
            }
            .environment(\.editMode, $editMode)
        }
    }
}

在上述代码中,我们通过@State属性包装editMode,将其作为NavigationView的环境变量进行设置。然后,在NavigationView的Toolbar中,根据editMode的值来手动添加“编辑”或“完成”按钮。点击按钮时,手动切换editMode的值,以启用或禁用编辑模式。

需要注意的是,由于我们要手动控制编辑模式,因此我们还需要根据editMode的值对列表进行相应的更新和处理。

这是一个解决在NavigationLink中设置editMode时EditButton()不起作用的方法。希望对你有帮助!如果你想了解更多关于SwiftUI和腾讯云的相关知识和产品,可以访问腾讯云官方网站(https://cloud.tencent.com/)获取更多信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券