我有一个 SwiftUI 视图,它使用常规方法推送新的详细信息视图NavigationLink:
NavigationLink(destination: DetailView() ) { Text("Show Detail View") }
Run Code Online (Sandbox Code Playgroud)
我需要一种解决方法来防止用户按下后退按钮时弹出详细信息视图。我找不到 SwiftUI 本机方法来做到这一点。
请在下面找到使用自定义后退按钮的可能方法(注意:添加任何前导导航栏项目都会自动禁用默认后退按钮)
使用 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") }
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
324 次 |
| 最近记录: |