无法将故事板中的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
是否无法连接的情况:
-
故事板是否定义了类?
select
storyboard
的UIViewController
,然后在屏幕的右侧selectidentity inspector
并分配相应的类。 -
您定义的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。