在 14.0.1 或 14.1 上模拟时,使用.toolbar
and ToolbarItem
(在 iOS 14.0 中定义为可用),导航栏NavigationLink
在单击时无法执行(按下时它会淡出并在释放时返回)。在我测试过的 iOS 14.2 及更高版本中模拟时效果很好。iOS 14.0 之前的版本,.navigationBarItems
运行良好。我尚未在 iOS 14.x 的真实硬件上对此进行测试。我可以解决它#available
,但我不应该这样做,不是吗?
- 这是 XCode 13.2.1 中的模拟器错误(它在真实硬件上是否正常工作?)
- 这是一个iOS错误吗?
- 如果它不是错误,那是我的代码中的错误吗?
import SwiftUI
@main
struct TestApp: App {
var body: some Scene {
WindowGroup {
NavigationView {
ContentView()
}
.navigationViewStyle(.stack)
}
}
}
struct ContentView: View {
var body: some View {
Text("some text")
.modifier(AddNextNavigation())
}
}
struct AddNextNavigation: ViewModifier {
func body(content: Content) -> some View {
// 14.0 here fails, 14.2 succeeds
if #available(iOS 14.0, *) {
content
.navigationTitle("Some Title")
.toolbar {
ToolbarItem(placement: .primaryAction) {
NavigationLink("Next", destination: NextView())
}
}
} else {
content
.navigationBarTitle("Some Title")
.navigationBarItems(trailing:
NavigationLink("Next", destination: NextView())
)
}
}
}