【发布时间】:2020-12-08 08:16:54
【问题描述】:
在我的应用中发现,当设备的方向改变时,某些视图中的导航栏项目会消失。这似乎只发生在使用 NavigationLink 打开的视图中,主视图导航栏项目按预期工作。与此相关的 iOS 13.7 和 iOS 14.2 之间似乎发生了一些变化。此外,使用前导项还是尾随项似乎都无关紧要,两者都会消失。
出现这种情况的示例 sn-p:
struct ContentView: View {
var detailView: some View {
Text("This is detail view")
.navigationBarTitle("Detail view title", displayMode: .inline)
.navigationBarItems(trailing: Button(action: {}, label: {
Image(systemName: "pencil.circle.fill")
}))
}
var body: some View {
NavigationView {
NavigationLink(
destination: detailView,
label: {
Text("Open detail view")
})
.navigationBarTitle("Main view")
}.navigationViewStyle(StackNavigationViewStyle())
}
}
只有在真实设备上运行时才会出现此问题。 (在我的例子中是 iPhone 11)在模拟器上一切正常。
还有其他人看到过类似的问题吗?解决方法/修复?
【问题讨论】:
-
几周前我也遇到过类似的问题。 UIBarButtonItems 没有专门显示图像。您能否确认模拟器和您的设备运行的是相同版本的 iOS?因为这是解决我的问题。
-
是的,我的模拟器和 iPhone 都在运行 iOS 14.2。此外,添加为 navigationBarItem 的视图类型是什么也没有关系。即使它只包含一个文本视图,它的行为也类似,并且当方向改变时视图会被隐藏。
-
抱歉,我的意思是在声明一个完全加载的 UIBarButtonItem 实例时可以作为参数传入的实际 UIImage 属性。例如,“
-
但是,鉴于更新不是您的问题,您是否尝试过蛮力覆盖 BarButtonItem 以在 detailView 中给出问题,以查看它是否有效?
-
能否请您澄清您所说的“蛮力覆盖 BarButtonItem 给出问题的 detailView 只是为了看看它是否有效?”
标签: swiftui ios14 swiftui-navigationlink swiftui-navigationview