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)显示在根NavigationBar上,所以我将屏幕向右滑动并看到了根视图,但是我的目标视图项目现在是显示在我的根导航栏上?
如果我快速执行此操作,它将毫无问题地进入根视图,当我缓慢执行时,则出现问题,哦,一切都过去了,默认的后退按钮,标题和结尾的项目都在那里。 我使用的navigationBarTitle字符串var不是私有的,我将其设为私有,现在当我不使用计时器时,navigationBarTitle不会传递到根视图。现在,我正在与一个倒计时计时器进行斗争,因为我在NavigationBarItems尾随了该计时器,并且该计时器变得模糊了,所有条形图都出现在根视图上。
私有var解析是一个错误警报,计数器是问题,当我执行左边缘操作时,我看到更多的根竞争,计数器立即停止,如果我停留在目标视图上,则计时器变为模糊,如果我点击<返回,则根视图将与目标视图的navigationBar一起出现。如果我一直向右走,则根视图看起来很好,没有目标视图栏。 它只会在计时器,计数器工作时发生。
当我开始向左滚动s enter code here
时,我看到了根视图,navigationBarItems(trailing),停止升级计数器,但是计时器继续工作,(我在var onBarRighTitle上打印了var,并继续升级),当我停止滚动并停留在目标视图中时,文本将再次接收输出,并且变得模糊。
谢谢
答案 0 :(得分:0)
我正在使用的navigationBarTitle字符串var不是private,我将其设为私有,现在当我不使用计时器时,navigationBarTitle不会传递到根视图。现在我正在与倒数计时器战斗,因为我有一个navigationBarItems尾随,并且那个变得越来越模糊,并且所有条形都出现在根视图上。 谢谢
答案 1 :(得分:0)
已解决!!! 我使用了IOS 14 .toolbar,并且运行良好。