作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
UIKitCore
-[UIViewController _ancestorViewControllerOfClass:allowModalParent:] + 44
我在默认的SwiftUI导航堆栈中有View:
struct MyView: View {
@EnvironmentObject var viewModel: MyViewModel
@Environment(\.presentationMode) var presentationMode: Binding<PresentationMode>
var body: some View {
ZStack {
......
}
.onAppear {
self.viewModel
.onViewAppear(presentationMode: self.presentationMode)
}
}
}
final class MyViewModel {
var presentationMode: Binding<PresentationMode>?
func onViewAppear(presentationMode: Binding<PresentationMode>) {
self.presentationMode = presentationMode
}
func hide() {
presentationMode?.wrappedValue.dismiss() // crashes after calling this
}
}
因此,我以这种方式将MyView插入导航堆栈:
NavigationLink(
destination: MyView()
) {
Image(systemName: "plus.circle")
.font(.title)
}
然后,在几秒钟后用户按下MyView中的按钮后,我在MyViewModel中调用
hide()
。它几乎一直都在工作,但在5-10%的情况下会崩溃。
最佳答案
对我来说,解决的方法是设置.navigationViewStyle(StackNavigationViewStyle())
NavigationView { content }.navigationViewStyle(StackNavigationViewStyle())
关于SwiftUI在PresentationMode上随机崩溃?.wrappedValue.dismiss(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62969859/
我有一个 View 显示用于过滤列表中项目的工作表。该 View 具有此变量: struct JobsTab: View { @State private var jobFilter: JobFilt
如何预览需要 PresentationMode 才能构建的按钮?该按钮在包含它的主视图中运行良好,使用声明为的环境 PresentationMode 对象创建它: @Environment(\.pre
我正在尝试为 SwiftUI 应用程序编写可重用的快速选择字段编辑器。下面的代码仅显示错误 Variable 'self.fieldValue' used before initialized如果@E
我是一名优秀的程序员,十分优秀!