当前位置: 首页 > 知识库问答 >
问题:

IBOutlet是零,但它连接在故事板,斯威夫特

郜彦
2023-03-14

使用Swift 1.1和Xcode 6.2。

我有一个UIStoryboard,其中包含一个单一的、自定义的UIViewController子类。在它上面,我有一个类型为UIView@IBOutlet连接,从该控制器连接到故事板上的UIView子类。对于该视图的子视图,我也有类似的插座。见图A。

但是在运行时,这些属性为nil(图B)。即使我已经保证我已经连接了接口生成器中的插座。

想法:

  • 有没有可能因为我使用的是子类的子类,所以初始化会出错?我没有凌驾于任何初始值设定者之上
  • awakeFromNib:由于某种原因没有被调用
  • 可能它没有连接到子视图上的子视图

我尝试过的事情:

  • 准确匹配@IBOutlet和故事板项目类型(而不是UIView
  • 删除属性和插座并重新添加它们

图A*

图B

*图A中的模糊代码为:

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

谢谢你。


共有3个答案

端木权
2023-03-14

您是从故事板或NIB实例化视图控制器,还是通过初始化器直接实例化它?

如果您直接使用初始值设定项实例化类,则不会连接出口。Interface Builder创建类的自定义实例,并将这些实例编码到NIB和故事板中,以便重复解码,但它不定义类本身。如果这是您的问题,您只需要更改创建控制器的代码,以使用UIStoryboard或UINib上的方法。

潘银龙
2023-03-14

你试过运行这个产品吗

宗政元青
2023-03-14

通常发生这种情况是因为视图控制器尚未加载其视图层次结构。视图控制器仅在某物向其发送view消息时加载其视图层次结构。系统在实际将视图层次结构放到屏幕上时执行此操作,这是在prepareforsgue:sender:viewwillbeen:等操作返回后发生的。

因为你的VC还没有加载它的视图层次结构,所以你的出口仍然是零。

您可以通过说\uuux=self来强制VC加载其视图层次结构。查看

 类似资料:
  • 问题内容: 函数定义中的下划线是什么意思? 例如 我了解在定义函数时,我可以执行以下操作: 然后,我将其称为而不是,即故意隐藏参数名称吗? 问题答案: Swift需要一个约定来说明函数名称是什么,不仅包括函数名称本身(在括号之前),还包括参数的外部名称。约定是名称后跟冒号。因此,这是一个函数声明(在Swift 2.0中): 这是该函数的名称: 但是,在现实生活中,一个或多个参数有可能(实际上)不会

  • 当swift使用时: O(n)其中,每次调用它时,我们都会遍历整个字符串以便对其进行计数 O(1),其中swift以前存储了这个数组的大小,并简单地访问它。

  • 问题内容: 我正在学习快速,并试图理解字典。我已经习惯了PHP,您可能会在其中编写以下内容… 在此示例中,将按以下顺序输出值:1、2、3 我的快速代码看起来像这样… 但是,值以意外的顺序出现。我可以做些干净的事情来保持值的创建顺序,还是不能对字典进行快速排序? 问题答案: 正如已经回答的那样,词典的要点是未排序。Swift(和Objective-C)中有三种类型的集合 数组是项目的有序列表。当项目

  • 问题内容: 什么之间的区别,以及何时该使用的呢? 例如,在Python中,如果我想打印字典,我只是,但是现在有2个其他选项。我应该如何以及何时使用它们? 问题答案: 一些区别: vs : 调试应用程序时,该功能在Xcode控制台中打印消息。 这是Swift 2中已删除且不再使用的变体。如果看到正在使用的旧代码,则可以安全地将其替换为。 回到Swift 1.x,没有在打印字符串的末尾添加换行符,而是

  • 问题内容: 为了在使用Swift时与C API集成,我需要使用sizeof函数。在C语言中,这很容易。在Swift中,我处于类型错误的迷宫中。 我有以下代码: 第二行显示错误“’NSNumber’不是’T.Type’的子类型”。为什么会这样,我该如何解决? 问题答案: 使用sizeof如下: 使用类型作为参数。 如果您想要变量的大小,可以将该字段传递给。 像这样: 或更简单地说(由user1020

  • 问题内容: NS和非NS类之间有什么区别?特别是vs ?是否代表围绕核心非功能性的某种包装器? 问题答案: Swift 3 为现有Foundation类类型引入了一些新的 覆盖值类型 ,例如for ,for 等。完整列表和详细信息可以在下面找到 SE-0069变异性和基础价值类型 一些原因是 提供适当的值语义, 而不是可变且不可变的变体, 更多的“ Swifty” API。 新的叠加层类型应提供相