ios - 检测首次启动时出错(Swift)

标签 ios iphone swift segue nsuserdefaults

我正在尝试检测该应用程序是否是首次打开。我已将这段代码放入我的 ViewController 的 viewDidLoad()

override func viewDidLoad() {
        super.viewDidLoad()

        let launchedBefore = UserDefaults.standard.bool(forKey: "launchedBefore")
        if launchedBefore  {
            performSegue(withIdentifier: "toMainController", sender: self)
            print("launchedBefore")
        } else {
            performSegue(withIdentifier: "toTutorialController", sender: self)
            UserDefaults.standard.set(true, forKey: "launchedBefore")
            print("not launchedBefore")

        }
    }

但是,无论何时启动 ViewController,都不会执行任何转场。但是我告诉它打印的内容被打印了。如果重要的话,segue "toMainController" 转到的 View 是一个 UITabViewController,而 segue "toTutorialController" 转到的 View 只是一个 UIViewController

有没有人知道为什么这不起作用?

更新

我发现了这个错误

2017-06-30 09:02:32.984 AppName[29732:24744712] Warning: Attempt to present on < AppName.ViewController: 0x7fcbfa908ed0> whose view is not in the window hierarchy!

最佳答案

先保存到userDefault,然后执行segue:-

override func viewDidLoad() {
        super.viewDidLoad()

        let launchedBefore = UserDefaults.standard.bool(forKey: "launchedBefore")
        if launchedBefore  {
            performSegue(withIdentifier: "toMainController", sender: self)
            print("launchedBefore")
        } else {
            UserDefaults.standard.set(true, forKey: "launchedBefore")
            performSegue(withIdentifier: "toTutorialController", sender: self)
            print("not launchedBefore")
        }
    }

关于ios - 检测首次启动时出错(Swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44846842/

相关文章:

ios - 当超出范围时,Google 附近的 iOS 上不会调用 messageLostHandler

iphone - 以编程方式为单个 UITableViewCell 设置高度?

iphone - 没有互联网时的 NSURLConnection 行为

ios - 如何在 UITextView 中显示 HTML 内容中的 https 图像?

ios - 为 previewingGestureRecognizerForFailureRelationship 设置委托(delegate)会引发异常

ios - 如何调整 NSURLSession 方法 dataTaskWithUrl

swift - 如何根据内部数组值对外部数组进行排序?

ios - 找不到接受提供的参数的 'subscript' 的重载

为 Facebook 应用程序批准崩溃而构建的 iOS 模拟器

iphone - 谷歌地图 View 如何在 map 缩放时获取原始点或注释框?