我的代码中有一个按钮,并且有一个名为LogindView.swift的文件
单击按钮时,我无法获取打开另一个视图文件的代码。
谁能给我一个例子。
在我的按钮操作中,我尝试编写LogindView(),但我只是警告我。“'LogindView'初始化程序的结果未使用”
Button(action: { // Do action LogindView() }, label: { //** Label text Text("Logind") .font(.headline) .padding(.all) .foregroundColor(Color.white) }) .background(Color.blue)
Zain.. 7
您基本上可以根据需要在视图之间切换的3个选项。
首先,您可以使用NavigationView
。这将提供一个后退按钮,并允许用户返回。请注意,按照/sf/ask/17360801/的说明,当前不存在NavigationLink
内部错误List
import SwiftUI struct MasterView: View { var body: some View { NavigationView { List { NavigationLink(destination: LoginView()) { Text("Login") } } .navigationBarTitle(Text("Master")) } } } struct LoginView: View { var body: some View { Text("Login View") } }
其次,您可以使用来呈现模态.sheet
。这将显示一个模态,该模态显示在当前视图的顶部,但用户可以通过向下拖动将其关闭。
import SwiftUI struct MasterView: View { @State var isModal: Bool = false var body: some View { Button("Login") { self.isModal = true }.sheet(isPresented: $isModal, content: { LoginView() }) } } struct LoginView: View { var body: some View { Text("Login View") } }
第三,您可以使用if
语句将当前视图更改为登录视图,如下所示
import SwiftUI struct MasterView: View { @State var showLoginView: Bool = false var body: some View { VStack { if showLoginView { LoginView() } else { Button("Login") { self.showLoginView = true } } } } } struct LoginView: View { var body: some View { Text("Login View") } }
如果您想对此进行动画处理,以使过渡不会突然出现,您还可以执行以下操作:
import SwiftUI struct MasterView: View { @State var showLoginView: Bool = false var body: some View { VStack { if showLoginView { LoginView() .animation(.spring()) .transition(.slide) } else { Button("Login") { withAnimation { self.showLoginView = true } }.animation(.none) } } } } struct LoginView: View { var body: some View { Text("Login View") } }
您基本上可以根据需要在视图之间切换的3个选项。
首先,您可以使用NavigationView
。这将提供一个后退按钮,并允许用户返回。请注意,按照/sf/ask/17360801/的说明,当前不存在NavigationLink
内部错误List
import SwiftUI struct MasterView: View { var body: some View { NavigationView { List { NavigationLink(destination: LoginView()) { Text("Login") } } .navigationBarTitle(Text("Master")) } } } struct LoginView: View { var body: some View { Text("Login View") } }
其次,您可以使用来呈现模态.sheet
。这将显示一个模态,该模态显示在当前视图的顶部,但用户可以通过向下拖动将其关闭。
import SwiftUI struct MasterView: View { @State var isModal: Bool = false var body: some View { Button("Login") { self.isModal = true }.sheet(isPresented: $isModal, content: { LoginView() }) } } struct LoginView: View { var body: some View { Text("Login View") } }
第三,您可以使用if
语句将当前视图更改为登录视图,如下所示
import SwiftUI struct MasterView: View { @State var showLoginView: Bool = false var body: some View { VStack { if showLoginView { LoginView() } else { Button("Login") { self.showLoginView = true } } } } } struct LoginView: View { var body: some View { Text("Login View") } }
如果您想对此进行动画处理,以使过渡不会突然出现,您还可以执行以下操作:
import SwiftUI struct MasterView: View { @State var showLoginView: Bool = false var body: some View { VStack { if showLoginView { LoginView() .animation(.spring()) .transition(.slide) } else { Button("Login") { withAnimation { self.showLoginView = true } }.animation(.none) } } } } struct LoginView: View { var body: some View { Text("Login View") } }