使用工具栏在视图控制器之间移动



这是一个初学者问题当工具栏中的按钮点击时,我想移动到下一个视图控制器(选项视图(,我该怎么做?

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")
}
}

}
}
}

}

您可以使用NavigationLinkisActive属性以编程方式激活链接。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")
}
}

}
}
}
}

相关内容

  • 没有找到相关文章

最新更新