【发布时间】:2021-08-23 23:05:07
【问题描述】:
我正在创建一个应用程序,其中登录/注册部分位于模式内,如果用户未登录,则会显示该模式。
问题是,用户可以通过向下滑动来关闭模式...
是否可以防止这种情况发生?
var body: some View {
TabView(selection: $selection) {
App()
}.sheet(isPresented: self.$showSheet) { // This needs to be non-dismissible
LoginRegister()
}
}
第二个例子:
我正在使用模式来询问信息。用户不应该能够退出这个过程,除非通过保存按钮关闭模式。用户必须在按钮起作用之前输入信息。不幸的是,模式可以通过向下滑动来关闭。
是否可以防止这种情况发生?
【问题讨论】:
-
模态通常(大多数情况下)被关闭。为什么不改变你的应用程序设计?让您的登录成为完整的
View?将它放在您想要的任何视图顶部的ZStack中。现在您拥有 100% 的控制权(您没有模态框),并且可以 (a) 以动画方式呈现它,(b) 保持它可见,直到您的代码说要关闭它,以及 (c) 动画化关闭它。跨度> -
从 iOS 15 开始,您可以使用
interactiveDismissDisabled- 请参阅 this answer。
标签: swiftui