SwiftUI 视图之间的导航
Posted
技术标签:
【中文标题】SwiftUI 视图之间的导航【英文标题】:Navigation between SwiftUI Views 【发布时间】:2020-06-03 21:17:16 【问题描述】:我不知道如何使用按钮在视图之间导航。
我在网上找到的唯一内容是详细视图,但我不希望左上角有后退按钮。我想要通过两个按钮连接两个独立视图,一个在第一个,一个在第二个。
此外,如果我要删除第二个视图上的按钮,我应该会卡在那里,返回到第一个视图的唯一选择会使应用程序崩溃。
在情节提要中,我只需创建一个带有动作 TouchUpInSide()
的按钮并指向首选视图控制器。
另外,当您习惯了故事板时,您是否认为进入 SwiftUI 值得?
【问题讨论】:
【参考方案1】:其中一个解决方案是在主视图中有一个@State
变量。此视图将根据@State
variable 的值显示其中一个子视图:
struct ContentView: View
@State var showView1 = false
var body: some View
VStack
if showView1
SomeView(showView: $showView1)
.background(Color.red)
else
SomeView(showView: $showView1)
.background(Color.green)
然后你将这个变量传递给它的子视图,你可以在其中修改它:
struct SomeView: View
@Binding var showView: Bool
var body: some View
Button(action:
self.showView.toggle()
)
Text("Switch View")
如果您想拥有两个以上的视图,您可以将 @State var showView1
设为 enum
而不是 Bool
。
【讨论】:
以上是关于SwiftUI 视图之间的导航的主要内容,如果未能解决你的问题,请参考以下文章
如何在 swiftui 中的按钮操作上在视图控制器之间导航?
如何在 SwiftUI 中创建共享导航栏以在多个视图之间进行交互? [关闭]
我正在使用 NavigationLink 在视图之间导航,但它在 SwiftUI 的单个视图中不起作用