如何设置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!
) 有关。您正在执行以下操作:
- 调用
instantiateViewController(withIdentifier:)
,Apple API 文档说 returns UIViewController
(在这种情况下,它返回 UITabBarController
,一个子 class)
- Force converting 一个
UITabBarController
到一个 FirstViewController
,失败了。
这是因为强制转换保证结果值不会是nil
,但不保证它不会失败(崩溃)。 UITabBarController
根本无法转换,因为它不 extend/implement FirstViewController
.
我的猜测是,即使您已经为该视图控制器提供了 标识符 "FirstViewController"
,但它只是一个普通的旧 UITabBarController
。在 Interface Builder 中仔细检查这个 View Controller 实际上是 FirstViewController
class.
的一个实例
查看您的照片,"Class" 字段的默认值为 UITabBarController
-- 这应该是您尝试更改的第一件事。填写 FirstViewController
,如果有效请告诉我。
我是新开发人员,我正在努力处理我的应用程序的演练屏幕。 我已经创建了它,但是当我点击继续到我的主屏幕时,应用程序崩溃了。 这是我的 "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!
) 有关。您正在执行以下操作:
- 调用
instantiateViewController(withIdentifier:)
,Apple API 文档说 returnsUIViewController
(在这种情况下,它返回UITabBarController
,一个子 class) - Force converting 一个
UITabBarController
到一个FirstViewController
,失败了。
这是因为强制转换保证结果值不会是nil
,但不保证它不会失败(崩溃)。 UITabBarController
根本无法转换,因为它不 extend/implement FirstViewController
.
我的猜测是,即使您已经为该视图控制器提供了 标识符 "FirstViewController"
,但它只是一个普通的旧 UITabBarController
。在 Interface Builder 中仔细检查这个 View Controller 实际上是 FirstViewController
class.
查看您的照片,"Class" 字段的默认值为 UITabBarController
-- 这应该是您尝试更改的第一件事。填写 FirstViewController
,如果有效请告诉我。