UIView中的所有内容随机变为零

时间:2018-08-03 09:15:17

标签: ios swift uiimageview

我正在尝试更改UIImageView中显示的图像,但是当调用函数“ loadMyImage”(这是我要更改图像的功能)时,{{ 1}}变为零。 Picture

这是我调用ViewController函数之前的代码。

loadMyImage

我在这条线上设置了一个断点

let playbackPoint = defaults.float(forKey: "pbpoint")
if eachTime > Double(playbackPoint) {
   let name = imageList[timeList.index(of: eachTime)!]
   ViewController().loadMyImage(name: name)
}

一切仍然存在 Picture

这是let name = imageList[timeList.index(of: eachTime)!]

的代码
loadMyImage

第一行开始运行。与UI相关的所有内容都变为零。我也尝试打印它,然后打印出“无”。

我尝试清理项目,但仍然无法正常工作。

1 个答案:

答案 0 :(得分:1)

在您的视图控制器中

什么都不会出现 nil,因为您不是在使用视图控制器,而是在使用视图控制器类的全新实例。

ViewController().loadMyImage(name: name)

您创建一个新实例,并在其上调用loadMyImage。您正在创建的新实例与当前显示的视图控制器无关,不在导航堆栈上,它仅存在于if {}的范围内,并将立即释放。

我假设此代码

let playbackPoint = defaults.float(forKey: "pbpoint")
if eachTime > Double(playbackPoint) {
   let name = imageList[timeList.index(of: eachTime)!]
   ViewController().loadMyImage(name: name)
}

驻留在您的视图控制器中?如果是这样,请执行以下操作:

let playbackPoint = defaults.float(forKey: "pbpoint")
if eachTime > Double(playbackPoint) {
   let name = imageList[timeList.index(of: eachTime)!]
   self.loadMyImage(name: name)
}

否则(在视图控制器中未调用),您需要将视图控制器实例传递给此函数。