如何使视图控制器仅在用户第一次快速打开应用程序时出现
Posted
技术标签:
【中文标题】如何使视图控制器仅在用户第一次快速打开应用程序时出现【英文标题】:How to make a view controller only appear the first time a user opens the app in swift 【发布时间】:2020-09-15 19:32:24 【问题描述】:我有两个问题。
如何检测用户第一次打开我的应用的时间。
和
如何以编程方式更改初始视图控制器,使其在用户第一次打开应用程序时打开“教程”视图控制器,并在用户打开应用程序的所有其他时间打开“主页”视图控制器。
我已经创建了我的故事板,我看到了必须删除整个故事板的解决方案,但我不想这样做,因为它会删除我以前的所有作品。如果存在不删除整个情节提要或删除情节提要而不删除视图控制器内的内容的解决方案,这也是可以接受的。
感谢您的帮助。
【问题讨论】:
第一部分,检查用户默认是否包含已知键,例如“tutorialShown”。如果没有这样的密钥,请显示您的教程并将密钥放入用户默认值中。其次,将教程显示为家庭控制器上的模式显示可能是最简单的。 【参考方案1】:在这种情况下我通常会做什么:
创建看起来像您的启动屏幕的初始屏幕,并在viewDidAppear
中确定是否应显示其他屏幕上的载入
模态显示此屏幕
使用.plist
适合存储Bool
值,该值表示应用程序是否已启动或载入完成
【讨论】:
【参考方案2】:您必须通过代码而不是界面构建器来完成此操作。
您在您的应用委托中执行此操作:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool
let seenTutorial = UserDefaults.standard.bool(forKey: "SEEN-TUTORIAL")
let rootViewController = seenTutorial ? UIViewController() : UITutorialViewController()
let bounds = UIScreen.main.bounds
self.window = UIWindow(frame: bounds)
self.window?.rootViewController = rootViewController
self.window?.makeKeyAndVisible()
return true
只要您觉得这是一个更新的好地方,就在教程控制器中更新您的 UserDefaults:
UserDefaults.standard.set(true, forKey: "SEEN-TUTORIAL")
【讨论】:
以上是关于如何使视图控制器仅在用户第一次快速打开应用程序时出现的主要内容,如果未能解决你的问题,请参考以下文章
仅在完成操作IOS Swift 3后才使用户访问视图[关闭]