我有以下示例代码:
import SwiftUI
struct ContentView: View {
var body: some View {
NavigationView {
NavigationLink(destination: DetailViewToolbarBug()) {
Text("Unknown")
}
}
}
}
struct DetailViewToolbarBug: View {
@State private var showActionSheet = false
var body: some View {
VStack {
NavigationLink(destination: DetailViewToolbarBug()) {
Text("Unknown")
}
}
.actionSheet(isPresented: $showActionSheet) {
ActionSheet(title: Text("Optionen"),
buttons: [
.default(Text("Add"), action: {
})
])
}
.navigationBarTitle("Detail")
.toolbar {
ToolbarItem(placement: .primaryAction) {
Button(action: {
showActionSheet = true
}) {
Image(systemName: "ellipsis.circle")
}
}
}
}
}
问题:如果您导航两次或多次,然后打开操作表,后退按钮(名称将是Detail
在其中)将消失并且不会再回来。
怎么解决这个问题呢?
这看起来像是一个 SwiftUI 错误,值得向 Apple 提交反馈。
临时解决方法是使用旧的.navigationBarItems
。使用 Xcode 12 / iOS 14 进行测试。
// ... other code
.navigationBarTitle("Detail")
.navigationBarItems(trailing:
Button(action: {
showActionSheet = true
}) {
Image(systemName: "ellipsis.circle")
}
)
// .toolbar {
// ToolbarItem(placement: .primaryAction) {
//
// Button(action: {
// showActionSheet = true
// }) {
// Image(systemName: "ellipsis.circle")
// }
// }
// }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)