使用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()
}
//...我做错了什么?
编辑:这个bug似乎只发生在模拟器上。
发布于 2020-06-29 12:40:20
这是SwiftUI在某些Xcode版本上的一个已知错误。我建议您尝试Xcode的最新版本,看看是否可行。
https://stackoverflow.com/questions/62623849
复制相似问题