Phu*_*Phu 2 navigation delay ios swiftui
我是 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()
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
考虑到您可能不想在已经进入后返回到启动屏幕,LoginScreen
我建议采用另一种方法,特别是更改rootView
inUIHostingController
的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
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5572 次 |
最近记录: |