Ios 如何使视图控制器仅在用户第一次在swift中打开应用程序时出现
我有两个问题 如何检测用户何时首次打开我的应用程序 及 如何以编程方式更改初始视图控制器,使其在用户首次打开应用程序时打开“教程”视图控制器,并在用户打开应用程序的所有其他时间打开“主页”视图控制器 我已经创建了我的故事板,我见过一些解决方案,其中一个必须删除整个故事板,但我不想这样做,因为它将删除我以前的所有工作。如果存在不删除整个情节提要或删除情节提要而不删除视图控制器内的内容的解决方案,这也是可以接受的Ios 如何使视图控制器仅在用户第一次在swift中打开应用程序时出现,ios,swift,xcode,viewcontroller,Ios,Swift,Xcode,Viewcontroller,我有两个问题 如何检测用户何时首次打开我的应用程序 及 如何以编程方式更改初始视图控制器,使其在用户首次打开应用程序时打开“教程”视图控制器,并在用户打开应用程序的所有其他时间打开“主页”视图控制器 我已经创建了我的故事板,我见过一些解决方案,其中一个必须删除整个故事板,但我不想这样做,因为它将删除我以前的所有工作。如果存在不删除整个情节提要或删除情节提要而不删除视图控制器内的内容的解决方案,这也是可以接受的 谢谢您的帮助。在这种情况下我通常会做什么: 创建与启动屏幕相似的初始屏幕,并在vie
谢谢您的帮助。在这种情况下我通常会做什么:
- 创建与启动屏幕相似的初始屏幕,并在
中确定是否应在其他屏幕上显示启动屏幕viewDidAppear
- 以模式显示此屏幕
- 使用
适用于存储一个.plist
值,该值表示应用程序是否已启动或已完成上线Bool
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.standard.set(true, forKey: "SEEN-TUTORIAL")
对于第一部分,检查用户默认值以查看它是否包含已知的密钥,例如“tutorialShown”。如果没有这样的键,请显示教程并将该键设置为用户默认值。对于第二种情况,最简单的方法可能是在家庭控制器上以模式显示教程。