【问题标题】:UIImageView is not instantiated in DetailViewControllerUIImageView 没有在 DetailViewController 中实例化
【发布时间】:2014-07-25 15:55:22
【问题描述】:

我正在编写一个主从应用程序。单击表格行项目时,我将图像加载到具有 UIImageView 的 DetailViewController 中。我假设 UIImageView 是由应用程序实例化的,我只需要设置 UIImage。

imageView.image = UIImage(name:"camera")

然而,imageView 是 nil。我确定 imageView 与情节提要上的 UIImageView 链接。

@IBOutlet weak var imageView: UIImageView!

func configureView() {

    if !imageView {
        println("nilnilnil") // nilnilnil is printed...
    }

}    

【问题讨论】:

    标签: swift


    【解决方案1】:

    您需要确保视图已经加载。您至少应该等到viewDidLoad 之后。通常你会直接在viewDidLoad

    override func viewDidLoad() {
        super.viewDidLoad()
    
        self.imageView.image = UIImage(name: "camera")
    }
    

    这是因为在加载视图之前没有创建子视图并且没有设置连接。在访问视图控制器的view 属性之前,视图不会加载——通常是在第一次显示视图控制器时。

    次要注意:变量是“实例化”或“初始化”而不是“实例化”

    【讨论】:

    • 函数 configureView() 由 Xcode 使用主从模板生成,并在 viewDidLoad() 内部执行。但是,它也会在设置详细项后调用,并且此时没有初始化 ImageView。我终于在设置图像实例之前添加了对 imageView 的 nil 检查
    猜你喜欢
    • 1970-01-01
    • 2014-01-29
    • 1970-01-01
    • 2014-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多