SwiftUI桥UIPageViewController后,Na
2021-12-06 本文已影响0人
捕梦人
由于swiftUI低版本(iOS 13)没有现成的UI只能先尝试去桥老的UIPageViewController
,但是这个问题居然成了我今天的梦魇弄了整整一天。。。
问题产生情景
1 a页 跳 b页
2 设置了navigationBarHidden(true)
异常状态
滑动UIPageViewController
时,已经hidden的navigationBar
又重现了
尝试
多处加navigationBarHidden(true)
,无用
监听UIPageViewController
中的scrollView,拦截setHidden,无用
。。。
各种方法都试过了,pageController一滑动的时候就被重新设置了一个navigationController
灵感
官方文档貌似有类似的场景,但是敲代码的时候好像没有类似bug产生,燃起希望
初步解决
be like: a -> b
a:
NavigationView{
let b = controller()
b.navigationBarHidden(true)
link:b
}
b:
错误姿势
//不行额!! 这样能b不能返回a
NavigationView {
ZStack{
custom navigationBar
pageController
...
}
}
正确姿势
//能b返回a
ZStack{
custom navigationBar
//只框住
NavigationView {
pageController
}
...
}
啰嗦了半天,最后
大家有其他好的解决方案可以分享
2022.2.16
新的解决方案
//对a, b设置navigationBarHidden
let a = AnyView(TestRedView()).navigationBarHidden(true)
let b = AnyView(TestBlueView()).navigationBarHidden(true)
return PaginationView(pages: [a, b])
.navigationBarTitle(Text("Test"), displayMode: .inline)
.navigationBarHidden(true)
.edgesIgnoringSafeArea(.all)
!
!
!
!
!
真的最后了了
我一开始发现了stackoverflow上有一个人跟我遇到了相同的情况但是无人作答,后面我写了个答案
附上地址大家方便追踪看有没有新的进展