【发布时间】:2020-05-08 18:50:17
【问题描述】:
我需要在异步操作期间暂时在视图中隐藏后退按钮。 我想阻止用户在操作完成之前离开视图。
可以使用 .navigationBarBackButtonHidden(true)永久隐藏它。 但是,显然用户在这种情况下无法返回,所以他们被卡住了。 我错过了什么?
这是一个人为的例子来演示:
struct TimerTest: View {
@State var isTimerRunning = false
var body: some View {
Button(action:self.startTimer) {
Text("Start Timer")
}
.navigationBarBackButtonHidden(isTimerRunning)
//.navigationBarBackButtonHidden(true) // This does hide it, but then it can't be unhidden.
}
func startTimer()
{
self.isTimerRunning = true
_ = Timer.scheduledTimer(withTimeInterval: 5.0, repeats: false) { timer in
print("Timer fired!")
self.isTimerRunning = false
}
}
}
【问题讨论】: