首页 > 解决方案 > SwiftUI:NavigationButton 初始化程序给出错误

问题描述

在我的一个 SwiftUI 视图中,我有以下代码:

NavigationButton(destination: DetailView()) {
    Text(verbatim: "Start")
}

Xcode 无法构建代码并给出此错误:

'(DetailView, @escaping () -> Text) -> NavigationButton<Text, DetailView>' is not convertible to '(DetailView, Bool, @escaping () -> Bool, () -> Text) -> NavigationButton<Text, DetailView>'

我相信 Xcode 认为我正在使用init(destination: Destination, isDetail: Bool, onTrigger: () -> Bool, label: () -> Label)初始化程序,但我正在使用初始化程序init(destination: Destination, label: () -> Label)

奇怪的是,我使用的那个没有记录(https://developer.apple.com/documentation/swiftui/navigationbutton),但它在我看过的多个教程中都有使用,例如https://www.hackingwithswift .com/quick-start/swiftui/how-to-push-a-new-view-using-navigationbutton

所以我的问题是:我使用的初始化程序是错误的还是有办法避免错误?

更新:问题已解决,见评论!

标签: swiftswiftui

解决方案


此外,“Xcode 11 Beta”的早期版本(和一些视频)显示使用“NavigationButton”但不再受支持,已替换为“NavigationLink”。


推荐阅读