swift - 在 Storyboard,Swift,xcode IBOutlet是零,但它被连接

  显示原文与译文双语对照的内容
128 4

使用 Swift 1.1和 Xcode 6.2.

我有一个 UIStoryboard,它包含一个单数的自定义 UIViewController 子类。上面,我从控制器到一个 UIView@IBOutlet 连接有一个连接,在 Storyboard 上有一个子类。我也有类似的subviews 。参见图A 。

但是在运行时,这些属性是零( 图B ) 。即使我已经确认了我已经连接了接口生成器中的。

的想法:

  • 是否可以能因为我使用了一个子类的子类,这些子类的初始化?我没有重写任何初始值设定项
  • 由于某种原因,awakeFromNib: 没有被呼叫
  • 也许它没有连接到subviews上的subviews

我尝试过的:

  • 精确匹配 @IBOutlet 和 Storyboard 项类型( 而不是 UIView )
  • 删除属性和输出口并添加它们

Figure A

图 A*

Figure B

图B

Figure A 中的*The 模糊代码是:

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

谢谢你。

时间:原作者:0个回答

150 1

通常这种情况发生是因为你的视图控制器还没有加载它的视图层次结构。视图控制器仅在某些东西发送 view 消息时加载它的视图层次。系统是时候实际地将视图层次结构放在屏幕上,这样就会在 prepareForSegue:sender:viewWillAppear: 返回之后发生。

由于你的还没有加载它的视图层次结构,你的outlets仍然为空。

你可以强制VC加载它的视图层次,方法是说 self.view

原作者:
...