我可以右键单击并从我的自定义UIView子类文件拖动到storyboard元素以连接它们,但无法通过其他方式执行此操作。我相信这是一个Xcode错误。有什么办法可以解决这个问题吗?这不是它第一次发生而且很烦人。
我已经尝试过多次清理和重启Xcode,但没有运气。
顺便说一句,我正在使用Xcode 8.1和Swift 3.0。
更新:我不是在寻找如何连接IBOutlets / IBActions的答案,因为正如我上面提到的那样(以及截图中),我已经能够连接它们并且应用程序运行良好。问题更多的是为什么Xcode不允许我从Storyboard>连接Swift文件,但让我这样做是从Swift文件>故事板。如果这个问题具有误导性,我很抱歉。
答案 0 :(得分:21)
自Xcode 8
以来,我们有时也会看到这个问题,并假设这是一个Xcode错误。
作为解决方法:
在代码@IBOutlet weak var myUiElement: UIView!
Ctrl +从插座拖动到故事板中的UI元素
答案 1 :(得分:9)
答案 2 :(得分:4)
在Objective-C
中创建这样的插座@property (nonatomic, weak) IBOutlet UIView *view;
或在swift 3中
@IBOutlet weak var instruction: UILabel?
然后按照此图片中的说明连接它。
有时,连接动作和插座的正常方式由于子类化而无法正常工作。这种方式对于这种情况很方便。
答案 3 :(得分:3)
在尝试了一些给定的解决方案后,最终工作的是重新启动我的macbook。这似乎是XCode方面的一个错误。哦,好吧。
答案 4 :(得分:1)
检查IBOutlet
是否无法连接的事项:
是否在故事板中定义了类?
在UIViewController
中选择storyboard
,然后在屏幕右侧选择identity inspector
并指定相应的课程。
您定义的插座类型是否与storyboard
上的插座匹配?
例如,我们连接UIButton
,然后插座应该是这样的,编写插座的代码,然后连接到视图控制器:
@IBOutlet weak var theButton: UIButton!
答案 5 :(得分:0)
我已通过以下步骤解决了问题。
希望这对您有用!
答案 6 :(得分:-2)
另一种方法是在视图控制器中手动创建按钮名称,如下所示 -
$model = User::newQuery();
$model->where('published', 1);
$model->get();
PS: - 请清理你的派生数据。
答案 7 :(得分:-3)
1:将类分配给viewController。
2:使用Shift-Alt-Cmd-K清洁项目。
3:首先退出Xcode并清除派生数据。 去:〜/ Library / Developer / Xcode / DerivedData
答案 8 :(得分:-5)
按ctrl而不是拖动到swift文件并创建插座。