我是 IOS 和 Swift UI 的新手,在启动屏幕后无法导航到登录屏幕。我如何导航到登录屏幕?请帮帮我!我真的很感谢你们的所有回答。
import SwiftUI
import Dispatch
struct SplashScreen: View {
let login = LoginScreen()
let color = Color.init("black_1")
// let color = Color.white
var body: some View {
let stack = VStack(alignment: .center){
Image("logo")
}.background(color).onAppear(perform: {
gotoLoginScreen(time: 2.5)
})
return stack
}
}
func gotoLoginScreen(time: Double){
DispatchQueue.main.asyncAfter(deadline: .now() + Double(time)) {
print("gotoLoginScreen")
}
return
}
struct SplashScreen_Previews: PreviewProvider {
static var previews: some View {
SplashScreen()
}
}
考虑到您可能不想在已经进入启动屏幕后返回到启动屏幕LoginScreen
我建议另一种方法,特别是改变rootView
of the UIHostingController
in SceneDelegate
.
如果您想推送到下一个屏幕,您可以使用以下代码重构:
struct SplashScreen: View {
@State private var isActive = false
let login = LoginScreen()
let color = Color.init("black_1")
var body: some View {
NavigationView {
VStack(alignment: .center) {
Image("logo")
NavigationLink(destination: login,
isActive: $isActive,
label: { EmptyView() })
}
.background(color)
.onAppear(perform: {
self.gotoLoginScreen(time: 2.5)
})
}
}
func gotoLoginScreen(time: Double) {
DispatchQueue.main.asyncAfter(deadline: .now() + Double(time)) {
self.isActive = true
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)