使用SwiftUI,
我展示了一个模态,然后以编程方式将其关闭。
问题是第二次navigationBarItems
没有响应,我再也不能按了。
如果我使用滑动手势关闭了模态,那么它可以正常工作,但是当我打电话给self.presentationMode.wrappedValue.dismiss()
HomeView.swift
struct HomeView: View {
@Environment(\.managedObjectContext) var moc;
@State private var isSureToResetCounter = false;
var body: some View {
func handleLeadingBtnPress() -> Void {
self.isSModalPresented = true;
}
return
NavigationView {
VStack(alignment: .center, spacing: 20.0) {
Spacer(minLength: 10)
// ...
}
.padding(20)
.background(Color.secondary)
.edgesIgnoringSafeArea(.all)
.navigationBarTitle(Text(""), displayMode: .inline)
.navigationBarItems(
leading:
Button(action: handleLeadingBtnPress) {
Text("Save")
.foregroundColor(.textPrimary)
}.sheet(isPresented: self.$isSModalPresented) {
SaveModalView()
.environment(\.managedObjectContext, self.moc)
.modifier(SystemServices())
}, trailing:
NavigationLink(destination: ActivityListView()) {
Text("History")
.foregroundColor(.textPrimary)
})
.gesture(tap)
}
}
}
SaveModalView.swift
struct SaveModalView: View {
@Environment(\.presentationMode) private var presentationMode
@Environment(\.managedObjectContext) var moc;
//...
func handleSaveActivity() -> Void {
let newActivity = Activity(context: self.moc);
do {
try moc.save();
} catch {
print("coulnd save activity")
}
AppStoreReviewManager.requestReviewIfAppropriate();
self.presentationMode.wrappedValue.dismiss()
}
//...
我在做什么错了?
编辑:该错误似乎仅在模拟器上发生。
答案 0 :(得分:0)
这是SwiftUI在某些Xcode版本上的已知错误。我建议您尝试使用最新版本的Xcode,看看是否能解决问题。