【发布时间】:2020-11-03 06:29:57
【问题描述】:
import SwiftUI
struct ContentView: View {
var body: some View {
NavigationView {
NavigationLink(destination: SecondCounter()){
Text("Show Second Counter View")}
.navigationBarTitle("RootView")
}
}
struct SecondCounter : View {
@State var timer: Timer? = nil
@State private var secCounter = 0
var body: some View {
Text("")
.navigationBarTitle("Second Counter View" ,displayMode:.inline)
.navigationBarItems(trailing:Text("\(secCounter)"))
.onAppear {
self.secondCounter()
}
.onDisappear {
self.timer?.invalidate()
self.timer = nil
}
}
func secondCounter () {
timer = Timer.scheduledTimer(withTimeInterval: 1, repeats: true, block: { _ in
self.secCounter += 1
})
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
`为什么当我在 swiftui 中向左滑动时,我的目标视图 navigationBarTitle 和 NavigationBarItems(trailing) 显示在根导航栏上,我向右滑动屏幕,看到根视图,但我的目标视图项目现在是显示在我的根导航栏上?
如果我做的很快,它会毫无问题地进入根视图,当我做的很慢时,问题就会发生,哦,一切都过去了,默认的后退按钮、标题和尾随项目何时存在。 我使用的 navigationBarTitle 字符串 var 不是私有的,我将其设为私有,现在当我不使用计时器时,navigationBarTitle 不会传递给根视图。现在我正在与一个倒数计时器战斗,我有一个作为尾随的 navigationBarItems,并且那个变得模糊,所有的栏都出现在根视图上。
私有变量解析是一个误报,计数器是问题,当我做左边缘时,我看到更多的根竞争,计数器立即停止,如果我停留在目标视图上,那么计时器变成模糊,如果我点击
当我开始左边缘 senter code herecrolling 时,我看到了根视图,navigationBarItems(trailing),停止升级计数器,但计时器继续工作,(我打印我的 var onBarRighTitle,然后继续升级),当我停止滚动并停留在目标视图中时,文本再次接收输出,并变得模糊。
谢谢
【问题讨论】:
标签: swiftui