ViewController 的子视图的 IBOutlets 在 Storyboard 的 viewDidLoad 中为零
Posted
技术标签:
【中文标题】ViewController 的子视图的 IBOutlets 在 Storyboard 的 viewDidLoad 中为零【英文标题】:ViewController's subview's IBOutlets nil in viewDidLoad from Storyboard 【发布时间】: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 value
,myLabel
为零。
不知道出了什么问题。
即使在awakeFromNib()
和required init?(coder)
我的出口也是零。
知道为什么以及如何解决它吗?
【问题讨论】:
你的 myView 也是 nil 吗? 不,它不是零 我已经更新了答案检查它是否适合你。 【参考方案1】:仔细检查以确保情节提要和代码之间的链接正常。我曾经在断开连接时遇到过这种情况,我所要做的就是重新连接它。
【讨论】:
我删除了所有链接并重新创建了它们,它仍然是一样的。【参考方案2】:看看你是否在xib中使用CustomViewClass
我想告诉你首先在Vc.swift
中将属性声明为@IBOutlet var viewObject: CustomViewClass!
然后在故事板中给出对面的出口然后在CustomViewClass.swift
中声明内部子视图出口/p>
现在您可以在您的Vc.swift
中随意访问您的CustomViewClass
的innersubviews 网点
viewObject.myLabel.text = "test"
别忘了给文件所有者的身份检查员Custom Class
Vc
和你的观点CustomViewClass
如果您有任何疑问,请随时在评论中提问。
【讨论】:
我做了所有这些,但我仍然遇到问题 我想重复一遍,确定给你的标签的 ParentView 提供MyView
类?
在您的 swift 项目中逐步检查您的问题并注意我的出口在 Vc.h 中,我很久以前在 obj-c 中工作过。 :D
我已经告诉过你不可能将故事板的出口设置到你的 Vc。您必须手动编写出口,然后您必须在情节提要中连接它。以上是关于ViewController 的子视图的 IBOutlets 在 Storyboard 的 viewDidLoad 中为零的主要内容,如果未能解决你的问题,请参考以下文章
如何在一个 ViewController 中使用两个 Webview?
ViewController 的子视图的 IBOutlets 在 Storyboard 的 viewDidLoad 中为零
创建一个不管viewController如何都留在屏幕上的子视图
如何将子 ViewController 的视图添加到父 View 控制器的子视图中?