无法将故事板中的IBOutlet连接到UIView子类

我能够右键单击并从我的自定义UIView子类文件拖动到故事板元素来连接它们,但无法以相反的方式。 我相信这是一个Xcode错误。 有什么我可以做的,以解决这个问题? 这已经不是第一次发生了,而且令人讨厌。

我已经尝试清洗并重新启动Xcode几次,没有运气。

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

这工作 这工作(从swift文件的IBAction右键单击故事板)

顺便说一句,我使用Swift 3.0 Xcode 8.1。

更新:我没有find一个关于如何连接IBOutlets / IBActions的答案,因为正如我在上面提到的问题(也在截图中),我已经能够连接他们,应用程序运行良好。 问题更多的是为什么Xcode不会让我从故事板> Swift文件连接,但让我这样做从Swift文件>故事板。 如果问题是误导性的,我很抱歉。

Xcode 8 ,我们有时会看到这个问题,并认为这是一个Xcode错误。

作为解决方法:

  • 在代码中@IBOutlet weak var myUiElement: UIView!代码@IBOutlet weak var myUiElement: UIView!

  • Ctr +从sockets拖动到故事板中的UI元素

在Objective-C中创build一个这样的sockets

 @property (nonatomic, weak) IBOutlet UIView *view; 

或像在迅速3

 @IBOutlet weak var instruction: UILabel? 

然后按照图中给出的方式连接它。

在这里输入图像说明

有时,由于子类化,连接操作和sockets的正常方式不起作用。 这种方式适用于这种情况。

1:将类分配给viewController。

2:用Shift-Alt-Cmd-K清理你的项目。

3:首先退出Xcode并清除导出的数据。 去:〜/ Library / Developer / Xcode / DerivedData

要检查IBOutlet是否无法连接的情况:

  1. 故事板是否定义了类?

    selectstoryboardUIViewController ,然后在屏幕的右侧selectidentity inspector并分配相应的类。

  2. 您定义的socketstypes是否与storyboard的sockets匹配? 例如,我们连接UIButton ,然后sockets应该看起来像这样,编写sockets的代码,然后连接到视图控制器:

     @IBOutlet weak var theButton: UIButton! 

另一种方法就是像这样在视图控制器中手动创buildbutton名称 –

 @IBOutlet weak var button: UIButton! 

然后连接你的button,通过拖动查看控制器如图所示[! 在这里输入图像说明

PS: – 请清除您的派生数据。

在尝试了一些给定的解决scheme后,最后的工作是通过重新启动我的MacBook。 这似乎是XCode方面的一个错误。 好吧。

我也面临与UIView子类相同的问题。 我无法手动连接。 但是我创build“@IBOutlet弱var myButton:UIButton!” 我可以连接通过右键单击拖动…但在UIView子类UIButton打印为零

我烦了。 我在正确的方式做,但我无法得到的结果

按ctrl比拖动swift文件并创buildsockets。