PushViewController 显示黑屏
PushViewController shows Black Screen
我的应用程序有问题。
我不是经验丰富的程序员,所以也许这只是一个简单的解决方案。我认为存在这个问题是因为我只是尝试并使用我的应用程序,所以我制作了一个新应用程序并且存在同样的问题。
当我用 navigationController?.pushViewController(PinkViewController(), animated: true)
推送到 ViewController 时。
我只是黑屏。如果我有这样的代码
Label.text = "String
在 PinkViewController() 的 viewdidload 中。我在这行代码中收到以下错误:
fatal error: Unexpectedly found nil while implicitly unwrapping an
Optional
我在网上搜索过,但没有找到解决此问题的方法。我希望你能帮助我。
它崩溃的原因是你的标签可能被定义为一个 @IBOutlet
连接到你的 故事板的 [=14] 中的 UILabel
=].但是,当您使用空构造函数实例化 PinkViewController
时,您不是 "using the storyboard-way" 并且您的标签出口(这是非可选的,因为它可能在那里有一个感叹号)无法连接到视图控制器的故事板实例。
那么您应该选择以下选项之一:
如果您在故事板中定义了 PinkViewController
,则必须以一种 nib 的方式实例化它,例如:
在您的 Storyboard 中,select 视图控制器,然后在 Identity Inspector 的右侧,提供 Storyboard ID。在代码中,您可以调用它来实例化您的视图控制器,然后推送它:
let pinkViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "yourIdentifier")
更好的是,您可以通过按住控制键从当前 VC 拖动到 PinkViewController,在故事板中创建一个 Segue。有很多在线创建 Segues 的教程。如果您想以编程方式触发它,请不要忘记在 Storyboard 中为 Segue 提供标识符。这可以通过调用
来完成
self.performSegue(withIdentifier: "yourIdentifier", sender: nil)
如果您想在单击按钮时触发该导航,您甚至可以将 Segue 从按钮拖到 PinkViewController
,这样您甚至不需要在代码中调用它。
如果您仅以编程方式定义 PinkViewController
(通过创建一个符合 UIViewController
的 class 命名),您可能想要用 PinkViewController(nibName: nil, bundle: nil)
实例化它(注意参数而不是空构造函数),然后用你提供的代码推送它。
希望有帮助,如果没有,请提供进一步的代码/项目见解。
我的应用程序有问题。
我不是经验丰富的程序员,所以也许这只是一个简单的解决方案。我认为存在这个问题是因为我只是尝试并使用我的应用程序,所以我制作了一个新应用程序并且存在同样的问题。
当我用 navigationController?.pushViewController(PinkViewController(), animated: true)
推送到 ViewController 时。
我只是黑屏。如果我有这样的代码
Label.text = "String
在 PinkViewController() 的 viewdidload 中。我在这行代码中收到以下错误:
fatal error: Unexpectedly found nil while implicitly unwrapping an Optional
我在网上搜索过,但没有找到解决此问题的方法。我希望你能帮助我。
它崩溃的原因是你的标签可能被定义为一个 @IBOutlet
连接到你的 故事板的 [=14] 中的 UILabel
=].但是,当您使用空构造函数实例化 PinkViewController
时,您不是 "using the storyboard-way" 并且您的标签出口(这是非可选的,因为它可能在那里有一个感叹号)无法连接到视图控制器的故事板实例。
那么您应该选择以下选项之一:
如果您在故事板中定义了 PinkViewController
,则必须以一种 nib 的方式实例化它,例如:
在您的 Storyboard 中,select 视图控制器,然后在 Identity Inspector 的右侧,提供 Storyboard ID。在代码中,您可以调用它来实例化您的视图控制器,然后推送它:
let pinkViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "yourIdentifier")
更好的是,您可以通过按住控制键从当前 VC 拖动到 PinkViewController,在故事板中创建一个 Segue。有很多在线创建 Segues 的教程。如果您想以编程方式触发它,请不要忘记在 Storyboard 中为 Segue 提供标识符。这可以通过调用
来完成self.performSegue(withIdentifier: "yourIdentifier", sender: nil)
如果您想在单击按钮时触发该导航,您甚至可以将 Segue 从按钮拖到 PinkViewController
,这样您甚至不需要在代码中调用它。
如果您仅以编程方式定义 PinkViewController
(通过创建一个符合 UIViewController
的 class 命名),您可能想要用 PinkViewController(nibName: nil, bundle: nil)
实例化它(注意参数而不是空构造函数),然后用你提供的代码推送它。
希望有帮助,如果没有,请提供进一步的代码/项目见解。