gpt4 book ai didi

xcode - IBOutlet 为零,但它在 Storyboard Swift 中已连接

转载 作者:IT王子 更新时间:2023-10-29 04:56:42 26 4
gpt4 key购买 nike

使用 Swift 1.1 和 Xcode 6.2。

我有一个包含单个自定义 UIViewController 子类的 UIStoryboard。在它上面,我有一个类型为 UIView@IBOutlet 连接,从该 Controller 到 Storyboard 上的 UIView 子类 .对于该 View 的 subview ,我也有类似的导出。见图A。

但在运行时,这些属性为零(图 B)。尽管我已经确定我已经在 Interface Builder 中连接了 socket 。

想法:

  • 有没有可能是因为我使用的是子类的子类,导致初始化出现问题?我没有覆盖任何初始化程序
  • awakeFromNib: 由于某种原因没有被调用
  • 也许它没有连接到 subview 上的 subview

我尝试过的事情:

  • 完全匹配 @IBOutlet 和 Storyboard项目类型(而不是 UIView)
  • 删除属性和导出并重新添加

Figure A

图A*

Figure B

图B

*图A中被遮蔽的代码是:

@IBOutlet private var annotationOptionsView: UIView!
@IBOutlet private var arrivingLeavingSwitch: UISegmentedControl!

谢谢。

最佳答案

通常发生这种情况是因为您的 View Controller 尚未加载其 View 层次结构。 View Controller 仅在某些东西向它发送 view 消息时才加载其 View 层次结构。当需要将 View 层次结构实际放置在屏幕上时,系统会执行此操作,这发生在 prepareForSegue:sender:viewWillAppear: 返回之后。

由于您的 VC 尚未加载其 View 层次结构,因此您的 socket 仍然为零。

您可以通过说 _ = self.view 强制 VC 加载其 View 层次结构。

关于xcode - IBOutlet 为零,但它在 Storyboard Swift 中已连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29321383/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com