首页 > 解决方案 > 如何从 SwiftUI 中的导航栏按钮单击导航到新视图

问题描述

学习 SwiftUI。尝试从单击的导航栏按钮导航到新视图。
下面的示例代码:

var body: some View {
    NavigationView {
        List(0...< 5) { item in
            NavigationLink(destination: EventDetails()){
                EventView()
            }
        }
        .navigationBarTitle("Events")
            .navigationBarItems(trailing:
                NavigationLink(destination: CreateEvent()){
                    Text("Create Event")
                }
        )
    }
}

标签: swiftswiftuinavigationview

解决方案


三个步骤让这对我有用:首先添加一个@State Bool来跟踪新视图的显示:

@State var showNewView = false

添加 navigationBarItem,并使用设置上述属性的操作:

 .navigationBarItems(trailing:
        Button(action: {
            self.showNewView = true
        }) {
            Text("Go To Destination")
        }
    )

最后在您的视图代码中的某处添加一个导航链接(这依赖于在视图堆栈中的某处也有一个 NavigationView)

NavigationLink(
            destination: MyDestinationView(),
            isActive: $showNewView
        ) {
            EmptyView()
        }.isDetailLink(false)

推荐阅读