【问题标题】:ViewController's subview's IBOutlets nil in viewDidLoad from StoryboardViewController 的子视图的 IBOutlets 在 Storyboard 的 viewDidLoad 中为零
【发布时间】:2017-02-16 03:56:08
【问题描述】:

我有一个从情节提要中实例化的UIViewController。 在这个视图控制器中放置了一个MyView,它实际上只是一个来自 Xib 文件的UIView

在视图控制器中,我将视图设置为 MyView 类,并将其链接到视图控制器类中的 IBOutlet

MyView 包含一个UILabel

在视图控制器中,viewDidLoad 我尝试设置myView.myLabel.text = "test" 我得到一个fatal error: unexpectedly found nil while unwrapping an Optional valuemyLabel 为零。

不知道出了什么问题。

即使在awakeFromNib()required init?(coder) 我的出口也是零。

知道为什么以及如何解决它吗?

【问题讨论】:

  • 你的 myView 也是 nil 吗?
  • 不,它不是零
  • 我已经更新了答案检查它是否适合你。

标签: ios swift uiview


【解决方案1】:

仔细检查以确保情节提要和代码之间的链接正常。我曾经在断开连接时遇到过这种情况,我所要做的就是重新连接它。

【讨论】:

  • 我删除了所有链接并重新创建了它们,它仍然是一样的。
【解决方案2】:

看看你是否在xib中使用CustomViewClass我想告诉你首先在Vc.swift中将属性声明为@IBOutlet var viewObject: CustomViewClass!然后在故事板中给出对面的出口然后在CustomViewClass.swift中声明内部子视图出口/p>

现在您可以在您的Vc.swift 中随意访问您的CustomViewClass 的innersubviews 网点

viewObject.myLabel.text = "test"

别忘了给文件所有者的身份检查员Custom ClassVc和你的观点CustomViewClass

如果您有任何疑问,请随时在评论中提问。

【讨论】:

  • 我做了所有这些,但我仍然遇到问题
  • 我想重复一遍,确定给你的标签的 ParentView 提供MyView 类?
  • 在您的 swift 项目中逐步检查您的问题并注意我的出口在 Vc.h 中,我很久以前在 obj-c 中工作过。 :D
  • 我已经告诉过你不可能将故事板的出口设置到你的 Vc。您必须手动编写出口,然后您必须在情节提要中连接它。
猜你喜欢
  • 2014-05-14
  • 1970-01-01
  • 2012-08-08
  • 1970-01-01
  • 1970-01-01
  • 2012-03-10
  • 2014-11-14
  • 2016-10-30
  • 1970-01-01
相关资源
最近更新 更多