在打开UIImage时出乎意料地发现了nil

时间:2016-11-03 12:48:09

标签: swift uiimageview

我正在开发一个演练屏幕,我在其中添加了3个指令图像,帮助用户使用该应用程序。出现问题,当我第一次启动应用程序时,我只看到带有"指令的标签tekst" ,但在此标签下方,用户还应该看到图像。也许我做错了什么,附上我上传的错误图片: enter image description here

在这里,我上传了用于将这些图片传输到TutorialPageContentHolderViewController的代码图片: enter image description here 如果你看到我的错误,我会非常感激,因为我一整天都在苦苦挣扎。

1 个答案:

答案 0 :(得分:1)

我猜你的第一张图片中的imageFileName变量是nil

myImageView.image = UIImage(named: imageFileName)

当您在第二个屏幕截图中为其分配值时,可能为时已晚,因为在此之前已加载viewdidLoad。您可以通过在使用之前手动将有效值分配给imageFileName来检查是否为真,并查看它是否有效。

修复它的一种简单方法是向视图控制器类添加初始化程序,将文件名作为参数传递,并将文件名存储在局部变量中,直到在viewDidLoad中使用它为止。

第二种方法是将方法添加到页面视图控制器,如下所示(并从viewDidLoad中删除相应的行):

func prepare(with filename:String) {
    myImageView.image = UIImage(named: filename)
}

并从主视图控制器中的pageTutorialAtIndex方法调用它。