Uni*_*orn 5 swift navigationview 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")
}
)
}
}
Run Code Online (Sandbox Code Playgroud)
小智 9
将 NavigationLink 放入按钮的标签中。
.navigationBarItems(
trailing: Button(action: {}, label: {
NavigationLink(destination: NewView()) {
Text("")
}
}))
Run Code Online (Sandbox Code Playgroud)
三个步骤对我有用:首先添加一个@State Bool
来跟踪新视图的显示:
@State var showNewView = false
Run Code Online (Sandbox Code Playgroud)
添加 navigationBarItem,使用设置上述属性的操作:
.navigationBarItems(trailing:
Button(action: {
self.showNewView = true
}) {
Text("Go To Destination")
}
)
Run Code Online (Sandbox Code Playgroud)
最后在您的视图代码中的某处添加一个导航链接(这依赖于在视图堆栈中的某处也有一个 NavigationView)
NavigationLink(
destination: MyDestinationView(),
isActive: $showNewView
) {
EmptyView()
}.isDetailLink(false)
Run Code Online (Sandbox Code Playgroud)
这对我有用:
.navigationBarItems(trailing: HStack { AddButton(destination: EntityAddView()) ; EditButton() } )
Run Code Online (Sandbox Code Playgroud)
在哪里:
struct AddButton<Destination : View>: View {
var destination: Destination
var body: some View {
NavigationLink(destination: self.destination) { Image(systemName: "plus") }
}
}
Run Code Online (Sandbox Code Playgroud)