使用工具栏在视图控制器之间移动
Moving between view controllers using toolbar
这是一个初学者问题
我想在点击工具栏中的按钮时移动到下一个视图控制器(OptionsView),我该怎么做?
var body: some View {
NavigationView {
VStack{
Text(/*@START_MENU_TOKEN@*/"Hello, World!"/*@END_MENU_TOKEN@*/)
}
.navigationTitle("Profile")
.navigationBarTitleDisplayMode(.inline)
.toolbar{
ToolbarItemGroup(placement: .navigationBarTrailing) {
Button {
OptionsView()
} label: {
Label("Settings", systemImage: "gear")
}
}
}
}
}
}
您可以使用 NavigationLink
的 isActive
属性 以编程方式激活 link。 NavigationLink
可以使用 EmptyView
作为它的标签,这样它就被隐藏了,因为你只需要通过 Button
.
激活它
然后,在 Button
的操作中,您可以设置 @State
要激活的变量。
struct ContentView : View {
@State private var optionsActive = false
var body: some View {
NavigationView {
VStack{
Text("Hello, World!")
NavigationLink(isActive: $optionsActive) {
OptionsView()
} label: {
EmptyView()
}
}
.navigationTitle("Profile")
.navigationBarTitleDisplayMode(.inline)
.toolbar{
ToolbarItemGroup(placement: .navigationBarTrailing) {
Button {
optionsActive = true
} label: {
Label("Settings", systemImage: "gear")
}
}
}
}
}
}
这是一个初学者问题 我想在点击工具栏中的按钮时移动到下一个视图控制器(OptionsView),我该怎么做?
var body: some View {
NavigationView {
VStack{
Text(/*@START_MENU_TOKEN@*/"Hello, World!"/*@END_MENU_TOKEN@*/)
}
.navigationTitle("Profile")
.navigationBarTitleDisplayMode(.inline)
.toolbar{
ToolbarItemGroup(placement: .navigationBarTrailing) {
Button {
OptionsView()
} label: {
Label("Settings", systemImage: "gear")
}
}
}
}
}
}
您可以使用 NavigationLink
的 isActive
属性 以编程方式激活 link。 NavigationLink
可以使用 EmptyView
作为它的标签,这样它就被隐藏了,因为你只需要通过 Button
.
然后,在 Button
的操作中,您可以设置 @State
要激活的变量。
struct ContentView : View {
@State private var optionsActive = false
var body: some View {
NavigationView {
VStack{
Text("Hello, World!")
NavigationLink(isActive: $optionsActive) {
OptionsView()
} label: {
EmptyView()
}
}
.navigationTitle("Profile")
.navigationBarTitleDisplayMode(.inline)
.toolbar{
ToolbarItemGroup(placement: .navigationBarTrailing) {
Button {
optionsActive = true
} label: {
Label("Settings", systemImage: "gear")
}
}
}
}
}
}