无法将IBOutlet从storyboard连接到UIView子类

Cha*_*ong 22 xcode interface-builder ios xcode-storyboard swift

我可以右键单击并从我的自定义UIView子类文件拖动到storyboard元素以连接它们,但无法通过其他方式执行此操作.我相信这是一个Xcode错误.有什么办法可以解决这个问题吗?这不是第一次它已经发生并且令人讨厌.

我已经尝试过多次清理和重启Xcode而没有运气.

这不起作用 这不起作用(右键单击从故事板到Swift文件)

这有效 这是有效的(右键从swift文件的IBAction到故事板)

顺便说一下,我正在使用Xcode 8.1和Swift 3.0.

更新:我不是在寻找如何连接IBOutlets/IBActions的答案,因为正如我上面提到的那样(以及截图中),我已经能够连接它们并且应用程序运行良好.问题是更多关于为什么Xcode不允许我从Storyboard> Swift文件连接,但让我从Swift文件> Storyboard这样做.如果这个问题具有误导性,我很抱歉.

sha*_*ght 21

我们有时也会看到这个问题Xcode 8,并假设这是一个Xcode错误.

作为解决方法:

  • 在代码中写出插座 @IBOutlet weak var myUiElement: UIView!

  • Ctrl +从插座拖动到Storyboard中的UI元素


Sco*_*des 12

它基本但容易被忽视.确保拖动插座的视图控制器标记为您创建的自定义类.

在此输入图像描述


Cha*_*ong 9

在尝试了一些给定的解决方案后,最终有效的是重新启动我的 MacBook。这似乎是 XCode 方面的一个错误。那好吧。


Nik*_*ure 5

在Objective-C中创建这样的出口

@property (nonatomic, weak) IBOutlet UIView *view;
Run Code Online (Sandbox Code Playgroud)

或快速3

@IBOutlet weak var instruction: UILabel?
Run Code Online (Sandbox Code Playgroud)

然后按照此图片中的说明进行连接。

在此处输入图片说明

有时,由于子类化,连接动作和插座的常规方法不起作用。这种方式在这种情况下很方便。