我正在尝试以编程方式更改 macOS 应用程序中的视图。我找到了诸如 NavigationLink 之类的东西,但我不允许使用它们。要切换的代码必须在Button的action中,因为这样我知道我可以从代码中快速切换,即使它不是按钮格式的。我怎样才能做到这一点?
ContentView.swift 中的按钮:
Button(action: {
//What goes here. Tried Settings(), didn't work
}) {
Text("Settings")
}.buttonStyle(PlainButtonStyle())
Run Code Online (Sandbox Code Playgroud)
设置.swift:
import SwiftUI
struct Settings: View {
var body: some View {
Text("Hello, world!")
}
}
Run Code Online (Sandbox Code Playgroud)
没有 NavigationLink、没有 NavigationView 或其他什么。我正在寻找一种纯粹在按钮操作中执行此操作的方法。
我还有一个关于这个话题的问题,所以如果你知道 swiftui,请点击这里,回答这个问题对我来说很重要。如果您回答了这个问题,也许您可以回答另一个问题,如果该问题得到了可接受的答案,那么它就会亮起。
基本上,你需要3 views在这里实现这个功能,MainContentView来切换视图(HomeView & SettingView)。
这里HomeView包含Setting button并有一个@Binding变量来处理按钮点击ContentView。
因此,每当您单击Setting按钮时HomeView,它将切换settingView变量的值
ContentView并根据其值切换视图。
试试下面的代码。
内容视图:
struct ContentView: View {
@State var settingView = false
var body: some View {
VStack {
if self.settingView {
Settings()
} else {
HomeView(buttonClick: $settingView)
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
主页视图:
struct HomeView: View {
@Binding var buttonClick: Bool
var body: some View {
VStack {
Button(action: {
withAnimation {
self.buttonClick.toggle()
}
}) {
Text("Settings")
}.buttonStyle(PlainButtonStyle())
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5941 次 |
| 最近记录: |