页面视图 + 隐藏导航栏不起作用
Page View + Hidden Navigation Bar doesn't work
当我将页面视图作为 written by Apple 包含在带有隐藏导航栏标题的导航视图中时,滑动页面会使标题出现。
struct ContentView: View {
var body: some View {
NavigationView {
PageView(pages: [Text("Foo"), Text("Bar")])
.navigationBarTitle("Title")
.navigationBarHidden(true)
}
}
}
我尝试添加一个状态变量,使用按钮将 navigationBarHidden
Bool 设置为 true
,但无济于事。当页面视图翻页时,navigationBarHidden
属性 和 UI 之间的连接似乎断开了。
我能够通过在 if navigationBarHidden
和 else
块中插入并触发 .onAppear { isNavigationBarHidden = true }
来强制重绘带有导航标题的视图来破解一些有效的东西else
块,但那很臭。
我找到了一个将页面视图包含在列表中的 hacky 解决方案(这是 Apple 在其 example app 中所做的,这就是我找到它的方式)。
struct ContentView: View {
var body: some View {
NavigationView {
List {
PageView(pages: [Text("Foo"), Text("Bar")])
}
.navigationBarTitle("Title")
.navigationBarHidden(true)
}
}
}
我尝试在 VStack 中包含页面视图、AnyView、它自己的自定义视图对象,其中 none 个有效。我猜这是可行的,因为 List 本质上是动态的,所以它会触发 whole-view 重绘?但对我来说它仍然像一个 Apple bug。
我仍然需要对 UI 进行大量修改,因为我实际上并不想要列表,但这是我能找到的最好的列表。
当我将页面视图作为 written by Apple 包含在带有隐藏导航栏标题的导航视图中时,滑动页面会使标题出现。
struct ContentView: View {
var body: some View {
NavigationView {
PageView(pages: [Text("Foo"), Text("Bar")])
.navigationBarTitle("Title")
.navigationBarHidden(true)
}
}
}
我尝试添加一个状态变量,使用按钮将 navigationBarHidden
Bool 设置为 true
,但无济于事。当页面视图翻页时,navigationBarHidden
属性 和 UI 之间的连接似乎断开了。
我能够通过在 if navigationBarHidden
和 else
块中插入并触发 .onAppear { isNavigationBarHidden = true }
来强制重绘带有导航标题的视图来破解一些有效的东西else
块,但那很臭。
我找到了一个将页面视图包含在列表中的 hacky 解决方案(这是 Apple 在其 example app 中所做的,这就是我找到它的方式)。
struct ContentView: View {
var body: some View {
NavigationView {
List {
PageView(pages: [Text("Foo"), Text("Bar")])
}
.navigationBarTitle("Title")
.navigationBarHidden(true)
}
}
}
我尝试在 VStack 中包含页面视图、AnyView、它自己的自定义视图对象,其中 none 个有效。我猜这是可行的,因为 List 本质上是动态的,所以它会触发 whole-view 重绘?但对我来说它仍然像一个 Apple bug。
我仍然需要对 UI 进行大量修改,因为我实际上并不想要列表,但这是我能找到的最好的列表。