在 swiftui 中 2 秒后推送视图
Posted
技术标签:
【中文标题】在 swiftui 中 2 秒后推送视图【英文标题】:push view after 2 seconds in swiftui 【发布时间】:2020-02-14 09:07:09 【问题描述】:如何在没有任何交互的情况下在 swiftUI 中 x 秒后推送视图?
NavigationView
.onAppear
DispatchQueue.main.asyncAfter(deadline: .now()+1.0)
NavigationLink(destination: pageViewUi())
EmptyView()
【问题讨论】:
【参考方案1】:你可以这样处理它:
struct ContentView: View
@State var show = false
var body: some View
NavigationView
NavigationLink(destination: Text("OK"), isActive: $show, label:
EmptyView()
)
.onAppear
DispatchQueue.main.asyncAfter(deadline: .now() + 2.0)
self.show.toggle()
【讨论】:
如何从下一个视图中删除导航返回? 您可以在下一个视图中设置导航隐藏修饰符 在我的回答中,您有隐藏后退按钮的代码。 :)【参考方案2】:你需要使用状态变量来管理它:
import SwiftUI
struct Home : View
@State var isActive = false
var body: some View
NavigationView
VStack
Text("Home")
NavigationLink(destination: Details(), isActive: self.$isActive)
EmptyView()
.onAppear
DispatchQueue.main.asyncAfter(deadline: .now() + 1.0)
self.isActive.toggle()
struct Details : View
var body: some View
VStack
Text("sample code")
.navigationBarBackButtonHidden(true) // To hide back button
【讨论】:
以上是关于在 swiftui 中 2 秒后推送视图的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI 上的 NavigationLink 两次推送视图
如何在 Swift 中 3 秒后从 AppDelegate 中删除FromSuperview