Pit*_*oas 8 uinavigationcontroller swiftui
我对 SwiftUi 有一个大问题。真正简单的 NavigationView 层次结构中的“后退按钮”在第三个视图中消失了。如果我再看一个视图,返回按钮又出现了,我可以返回。
我搜索了 3 小时,但只找到了这个SwiftUI:单击 NavigationLink 时后退按钮消失
显然这并不能解决我的问题。
谢谢你的帮助!
use*_*533 11
对我来说,问题有点不同 - 只有在与第三个视图交互后,后退按钮才会在第三个视图上消失,例如单击列表视图。
我的解决方法是使用旧的 .navigationBarItems 而不是 .toolbar,所以:
.navigationBarItems(trailing:
Menu {
Button(action: {
//some action
}) {
//some label
}
Button(action: {
//some action
}) {
//some label
}
}
label: {
//some label
}
)
Run Code Online (Sandbox Code Playgroud)
代替:
.toolbar {
ToolbarItem(placement: .navigationBarTrailing) {
Menu {
Button(action: {
//some action
}) {
//some label
}
Button(action: {
//some action
}) {
//some label
}
}
label: {
//some label
}
}
}
Run Code Online (Sandbox Code Playgroud)
另一个似乎正在研究的解决方案Xcode 12.4:
ToolbarItem(placement: .navigationBarLeading) {
HStack {}
}
Run Code Online (Sandbox Code Playgroud)
对于不想使用已弃用方法的人,我找到了另一种解决方法。
只需添加您的.toolbar这个ToolBarItem:
.toolbar {
// ... other toolbar items
ToolbarItem(placement: .navigationBarLeading) {
Text("")
}
}
Run Code Online (Sandbox Code Playgroud)
如果你想让你的代码更干净
/// A ToolbarItem wrapper to work around the back button disappearance bug in SwiftUI 2.
struct NavbarBackButtonDisappearanceWorkaroundItem: ToolbarContent {
var body: some ToolbarContent {
ToolbarItem(placement: .navigationBarLeading) {
Color.clear
}
}
}
Run Code Online (Sandbox Code Playgroud)
使用方法如下:
.toolbar {
NavbarBackButtonDisappearanceWorkaroundItem()
SomeOtherUsefulItem()
}
Run Code Online (Sandbox Code Playgroud)
小智 4
我发现问题了!
NavigationView 上的 .toolbar 修饰符以错误的方式隐藏了后退按钮!
| 归档时间: |
|
| 查看次数: |
1698 次 |
| 最近记录: |