gpt4 book ai didi

ios - 如何通过 AppDelegate 首次运行时覆盖初始 ViewController

转载 作者:行者123 更新时间:2023-11-29 01:13:43 25 4
gpt4 key购买 nike

我正在使用以下代码来检测该应用是否是第一次运行:

    // Detect First Launch

let firstLaunch = NSUserDefaults.standardUserDefaults().boolForKey("FirstLaunch")
if firstLaunch {
print("Not first launch.")
Show()
}
else {
print("First launch, setting NSUserDefault.")
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "FirstLaunch")
}

我正在使用以下函数来显示 ViewController:

func Show(){
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier(“myViewController”) as! MyViewController
self.window?.rootViewController?.presentViewController(vc, animated: true, completion: nil)
}

我把这两个代码放在:func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

但是,当我构建并运行该应用程序时,初始 View Controller 显示为好像什么也没发生。我希望首先显示“myViewController”(在应用程序首次在设备上启动期间。)然而,在第一次启动后,“myViewController”将不再显示,除非用户卸载并重新安装应用程序。

有人知道怎么做吗?

最佳答案

因为你想在第一次启动时显示自定义屏幕然后关闭它,我会在你的普通根 VC 的 viewWillAppear(animated:Bool) 方法中运行这段代码

编辑:

是的,您需要稍微修改一下代码。例如,像这样:

func Show(){
guard let sb = storyboard else { return }
let vc = sb.instantiateViewControllerWithIdentifier(“myViewController”) as! MyViewController
navigationController?.presentViewController(vc, animated: true, completion: nil)
}

关于ios - 如何通过 AppDelegate 首次运行时覆盖初始 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35477280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com