启动时的欢迎屏幕

Welcome Screen on Launch

我想要一种方法让用户在首次启动应用程序时看到欢迎屏幕/教程。如果这不是应用程序的第一次启动,那么它会像往常一样打开。

如果应用程序正常打开,我已经将欢迎屏幕绑定到按钮功能。我正在使用 BWWalkThroughViewController。这是我的按钮功能代码:

@IBAction func showWalkThroughButtonPressed() {

    // Get view controllers and build the walkthrough
    let stb = UIStoryboard(name: "MainStoryboard", bundle: nil)
    let walkthrough = stb.instantiateViewControllerWithIdentifier("walk0") as! BWWalkthroughViewController
    let page_one = stb.instantiateViewControllerWithIdentifier("walk1") as UIViewController
    let page_two = stb.instantiateViewControllerWithIdentifier("walk2") as UIViewController
    let page_three = stb.instantiateViewControllerWithIdentifier("walk3") as UIViewController
    let page_four = stb.instantiateViewControllerWithIdentifier("walk4") as UIViewController
    let page_five = stb.instantiateViewControllerWithIdentifier("walk5") as UIViewController

    // Attach the pages to the master
    walkthrough.delegate = self
    walkthrough.addViewController(page_one)
    walkthrough.addViewController(page_two)
    walkthrough.addViewController(page_three)
    walkthrough.addViewController(page_four)
    walkthrough.addViewController(page_five)

    self.presentViewController(walkthrough, animated: true, completion: nil)
}

func walkthroughCloseButtonPressed() {
    self.dismissViewControllerAnimated(true, completion: nil)
}

该代码位于 MyTableViewController.swift 文件中。

这是我想不通的:

我希望视图控制器在首次启动时显示。用户完成教程后,他们可以按关闭按钮,它就会关闭。我有代码来检查它是否是该应用程序的首次启动。它位于 AppDelegate.swift 文件中。这是代码:

// First Launch Check

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

那么如何让欢迎屏幕在首次启动时启动?我是否必须在 AppDelegate 中创建一个函数来处理这个问题,如果是这样,我必须做些什么才能使教程成为首次启动的初始视图控制器?

我相信您需要做的已经在这里涵盖:Programmatically set the initial view controller using Storyboards。如果这对您不起作用,请添加更多关于实施失败原因的注释。在 "programatically change uiviewcontroller on launch ios" 上的 google 搜索将产生其他类似的链接。