Swift 在另一个类的scrollView中添加图像?

Swift 在另一个类的scrollView中添加图像?,swift,uiscrollview,Swift,Uiscrollview,我正在尝试将一个图像作为子视图添加到另一个类中存在的scrollview出口 我确实在外部类中为scrollView出口所在的父类创建了一个对象 var imageClassName = ImageViewController() 但是当我尝试在滚动视图中添加图像时 imageClassName.scrollView.addSubview(imageView) 我得到以下错误 “致命错误:在展开可选值时意外发现nil” 我还尝试在末尾添加一个可选项,但仍然得到相同的错误 imageClass

我正在尝试将一个图像作为子视图添加到另一个类中存在的scrollview出口

我确实在外部类中为scrollView出口所在的父类创建了一个对象

var imageClassName = ImageViewController()
但是当我尝试在滚动视图中添加图像时

imageClassName.scrollView.addSubview(imageView)
我得到以下错误 “致命错误:在展开可选值时意外发现nil”

我还尝试在末尾添加一个可选项,但仍然得到相同的错误

imageClassName.scrollView?.addSubview(imageView)
有什么线索吗?

这(可能)是一个常见的误解。刚开始的时候,我也有这个问题

想象你是一个奇迹般的真实世界产品设计师,而不是一个iOS开发者。你为一个神奇的盒子设计了蓝图,让用户放进照片,然后滚动浏览(有点像一幅神奇的拼贴画)。你在一个焦点小组里展示了100个人,95个人说他们喜欢这个。然后你将蓝图发送给一家生产100种相同产品的制造公司。这与您的场景类似

您的
ImageViewController.swift
就像蓝图一样。自己创造一个新的例子就像说:“把一个图像放到magicBox的蓝图中”。iOS不知道使用class
ImageViewController
将图片放入哪个
UIViewController
,因为您可以无限次地重复使用它。您需要指定您想要哪一个(即使您可能只有一个)

因此,您必须:

  • 进入你的故事板
  • 选择目标
    ImageViewController
  • 单击右侧工具栏上左侧的第三个图标
  • 在“情节提要id”部分输入id(如“ImageVC1”)
  • 将var imageClassName=ImageViewController()替换为:

    var-imageClassName:ImageViewController=self.storyboard!。实例化eviewcontrollerwhiteIdentifier(“您在步骤4中输入的id”)为!ImageViewController


  • 你很好

    这是迄今为止最好的解释。我清楚地理解这个概念。谢谢没问题!你不知道当我开始在斯威夫特的时候,这让我重蹈覆辙了多久