barButtonItem 中 UIKit 的“pushViewController”的 SwiftUI 的替代方法是什么

Vip*_*a74 6 navigation button navigationbar swift swiftui

我正在 SwiftUI 中开发一个非常简单的应用程序,并且我设法为我的列表创建了一个导航按钮,它将我带到了 DetailViewController。在右上角,我想要一个“+”按钮来将内容添加到我的列表中:

navigationBarItems(trailing:
                    NavigationButton(destination: DetailVC()) {
                        Image(systemName: "plus")
                            .resizable()
                            .frame(width: 20, height: 20)
                    }
)
Run Code Online (Sandbox Code Playgroud)

问题是当我点击按钮时,它不会导航到我的 DetailVC。

我也试过这个:

.navigationBarItems(trailing:
                    PresentationButton(destination: DetailVC()) {
                        Image(systemName: "plus")
                            .resizable()
                            .frame(width: 20, height: 20)
                    }
)
Run Code Online (Sandbox Code Playgroud)

使用此代码,问题在于它没有显示带有“返回”按钮的 DetailVC,但它从底部显示并且无法返回到我的 ContentView

放入导航栏中以正确导航的正确项目是什么?

谢谢你,尼科

swi*_*ynx 6

在 SwiftUI 中,您使用 NavigationButton 来导航您的应用程序。

只需将您的替换PresentationButtonNavigationButton

.navigationBarItems(trailing:
    NavigationButton(destination: DetailVC()) {
        Image(systemName: "plus")
            .resizable()
            .frame(width: 20, height: 20)
    }
)
Run Code Online (Sandbox Code Playgroud)

苹果文档:

https://developer.apple.com/documentation/swiftui/navigationbutton (已弃用)

编辑:


NavigationButton被弃用,因此不应再使用。

取而代之的是一个NavigationLink视图,它应该起作用。这个结构是新的,我还不能测试它,但按钮本身的代码应该是这样的:

NavigationLink(destination: DetailVC()) { }
Run Code Online (Sandbox Code Playgroud)

苹果文档:

https://developer.apple.com/documentation/swiftui/navigationlink

  • 我尝试这样做,但它没有显示 DetailVC (2认同)