UIKit 的 "pushViewController" 的 SwiftUI 在 barButtonItem 中的替代方案是什么



我正在使用SwiftUi中的一个非常简单的应用程序,我设法为我的列表创建了一个导航button,将我带到了deleteviewViewController。在右上角,我想拥有一个" "按钮以将内容添加到我的列表中:

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

问题是,当我点击按钮时,它不会导航到我的详细信息。

我也尝试过:

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

使用此代码,问题是它不会带有" back"按钮,但它是从底部显示的,并且无法返回我的ContentView

在导航栏中要正确导航的正确项目是什么?

谢谢,nico

在swiftui中,您使用avarigationbutton导航您的应用程序。

只需用NavigationButton替换您的PresentationButton

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

苹果文档:

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

编辑:


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

相反,有一个NavigationLink视图,该视图应起作用。这个结构是新的,我还无法测试它,但是按钮本身的代码应该看起来像这样:

NavigationLink(destination: DetailVC()) { }

苹果文档:

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

我做了示例以显示列表和详细信息。希望此示例应用程序能为您提供帮助。

https://github.com/shiju86/listviewswiftui

是的,NavigationButton已不复存在,而不是这个Apple为我们提供NaviaGtionLink。

navigationLink应该是如何做到这一点。但是,在iOS 13.2和13.3中,当在标题内使用时,这似乎是损坏/不可靠的(并且完全打破了我的应用程序:我通过将导航链接移出标头并使其他东西成为模态来弄清楚工作。

在标准视图本身中,它可以更好地工作(但仍然与怪癖(。荒谬的是,您可能需要考虑使用模态而不是孩子视图,因为这实际上是有效的。

相关内容

  • 没有找到相关文章

最新更新