如何设置walkthrough/introduction屏幕?

How to set a walkthrough/introduction screen?

我是新开发人员,我正在努力处理我的应用程序的演练屏幕。 我已经创建了它,但是当我点击继续到我的主屏幕时,应用程序崩溃了。 这是我的 "continue" 按钮下的代码:

  @IBAction func skipButtonTapped(_ sender: AnyObject) {


    let nextView: FirstViewController = self.storyboard?.instantiateViewController(withIdentifier: "FirstViewController") as! FirstViewController

    let appdelegate = UIApplication.shared.delegate as! AppDelegate


    appdelegate.window!.rootViewController = nextView

}

我得到的错误是:

 Could not cast value of type 'UITabBarController' (0x19f33c0d8) to 'Iwin.FirstViewController' (0x100057220).

我认为问题在于标识符的名称,在我的例子中是 "FirstViewController"

这是我的 TabBarController 的故事板 ID,它应该是我的应用程序的第一个屏幕。

附件我也上传了一张图片

您看到的错误可能与您在函数第一行执行的强制转换 (as!) 有关。您正在执行以下操作:

  1. 调用 instantiateViewController(withIdentifier:),Apple API 文档说 returns UIViewController(在这种情况下,它返回 UITabBarController,一个子 class)
  2. Force converting 一个 UITabBarController 到一个 FirstViewController,失败了。

这是因为强制转换保证结果值不会是nil,但不保证它不会失败(崩溃)。 UITabBarController 根本无法转换,因为它不 extend/implement FirstViewController.

我的猜测是,即使您已经为该视图控制器提供了 标识符 "FirstViewController",但它只是一个普通的旧 UITabBarController。在 Interface Builder 中仔细检查这个 View Controller 实际上是 FirstViewController class.

的一个实例

查看您的照片,"Class" 字段的默认值为 UITabBarController -- 这应该是您尝试更改的第一件事。填写 FirstViewController,如果有效请告诉我。