0

在 14.0.1 或 14.1 上模拟时,使用.toolbarand 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())
                )
        }
    }
}
4

0 回答 0