我正在开发一个演练屏幕,我在其中添加了 3 个说明图像,以帮助用户使用该应用程序。问题出现了,当我第一次启动应用程序时,我只看到带有“instruction tekst”的标签,但在这个标签下方,用户也应该看到图像。也许我做错了什么,附上我上传的错误图片:
在这里我上传了我用来将这些图片传输到 TutorialPageContentHolderViewController 的代码图片: 如果您能看到我的错误,我将不胜感激,因为我一整天都在为此苦苦挣扎。
最佳答案
我猜你的第一个图像中的 imageFileName
变量在你使用它时是 nil
myImageView.image = UIImage(named: imageFileName)
当您在第二个屏幕截图中为其分配一个值时,可能为时已晚,因为 viewdidLoad
在此之前加载。您可以通过在使用前手动为 imageFileName
分配一个有效值来检查这是否属实,并查看它是否有效。
修复它的一个简单方法是向 View Controller 类添加一个初始化程序,将文件名作为参数传递并将文件名存储在局部变量中,直到您在 viewDidLoad
中使用它。
第二种方法是向页面 View Controller 添加一个方法,如下所示(并从 viewDidLoad
中删除相应的行):
func prepare(with filename:String) {
myImageView.image = UIImage(named: filename)
}
并从主视图 Controller 中的 pageTutorialAtIndex
方法调用它。
关于swift - 打开 UIImage 时意外发现 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40401923/