我有一个SwiftUI视图,可以使用常规的NavigationLink
推送新的详细信息视图:
NavigationLink(destination: DetailView() ) { Text("Show Detail View") }
我需要一种解决方法,以防止当用户按下“后退”按钮时弹出详细视图。我找不到SwiftUI本机的方法。
答案 0 :(得分:3)
请在下面找到使用自定义后退按钮的一种可行方法(注意:添加任何前导导航栏项目会自动禁用默认的后退按钮)
通过Xcode 11.2 / iOS 13.2测试
struct DemoDetailsWithCustomBack: View {
@Environment(\.presentationMode) var presentationMode
@State private var allowsBack = true
var body: some View {
Text("Details here")
.navigationBarItems(
leading: Button(action: {
if self.allowsBack {
self.presentationMode.wrappedValue.dismiss()
} else {
// activate alert here
}
}, label: { Image(systemName: "chevron.left") })
)
}
}
struct TestNavBarButton_Previews: PreviewProvider {
static var previews: some View {
NavigationView {
NavigationLink(destination: DemoDetailsWithCustomBack() ) { Text("Show Detail View") }
}
}
}