应用程序第二次启动时显示第二个 ViewController
Posted
技术标签:
【中文标题】应用程序第二次启动时显示第二个 ViewController【英文标题】:show the second ViewController when app launch the second time 【发布时间】:2019-09-07 19:14:38 【问题描述】:所以当我第一次启动我的应用程序时,会有一个受欢迎的 ViewController。如何设置一个函数,在用户第二次启动应用程序时显示第二个 ViewController。
【问题讨论】:
您正在向后看。您的逻辑应该是如何仅在首次启动时显示欢迎屏幕。这已经在这里讨论过很多次了。 好的,你能告诉我怎么做吗? 【参考方案1】:在您的应用程序的用户默认值中添加一个布尔值,以检查应用程序是否是第一次启动。基于此布尔值在您的应用委托类中加载另一个 ViewController。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool
let isFirst = UserDefaults.standard.bool(forKey: “isLaunched”) // edited this after rmaddy's comment
var viewControllerWithIdentifier = "SecondViewController"
if !isFirst
UserDefaults.standard.set(true, forKey: “isLaunched”)
viewControllerWithIdentifier = "FirstViewController"
let mainStoryboard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let initialViewController : UIViewController = mainStoryboard.instantiateViewControllerWithIdentifier(viewControllerWithIdentifier) as UIViewController
self.window = UIWindow(frame: UIScreen.main.bounds)
self.window?.rootViewController = initialViewController
self.window?.makeKeyAndVisible()
return true
【讨论】:
应用仍会使用第一个视图控制器启动 我必须把这个func
放在AppDelegate.swift
文件中吗?
这个逻辑不正确。 isFirst
变量将始终为真。
我试过isFirst.toggle()
它仍然无法正常工作
@rmaddy 怎么样? UserDefaults.standard.bool(forKey: “isFirst”) 将返回 false,因为它的值将在 if 条件中设置为 false。我在这里错过了什么吗?以上是关于应用程序第二次启动时显示第二个 ViewController的主要内容,如果未能解决你的问题,请参考以下文章