Ios 无法将IBOutlet从情节提要连接到UIView子类
我可以右键单击并从自定义UIView子类文件拖动到情节提要元素以连接它们,但无法通过其他方式进行连接。我相信这是一个Xcode错误。我能做些什么来解决这个问题吗?这已经不是第一次了,而且很烦人 我已经多次尝试清理和重新启动Xcode,但都没有成功 这不起作用(右键单击从故事板到Swift文件) 这是有效的(从swift文件的iAction右键单击到情节提要) 顺便说一句,我使用的是Xcode 8.1和Swift 3.0Ios 无法将IBOutlet从情节提要连接到UIView子类,ios,swift,xcode,interface-builder,xcode-storyboard,Ios,Swift,Xcode,Interface Builder,Xcode Storyboard,我可以右键单击并从自定义UIView子类文件拖动到情节提要元素以连接它们,但无法通过其他方式进行连接。我相信这是一个Xcode错误。我能做些什么来解决这个问题吗?这已经不是第一次了,而且很烦人 我已经多次尝试清理和重新启动Xcode,但都没有成功 这不起作用(右键单击从故事板到Swift文件) 这是有效的(从swift文件的iAction右键单击到情节提要) 顺便说一句,我使用的是Xcode 8.1和Swift 3.0 更新:我不是在寻找如何连接iOutlets/iActions的答案,因为
更新:我不是在寻找如何连接iOutlets/iActions的答案,因为正如我在上面的问题中提到的(以及在截图中提到的),我已经能够连接它们,并且应用程序运行良好。问题是为什么Xcode不允许我从故事板>Swift文件进行连接,而是允许我从Swift文件>故事板进行连接。如果问题有误导性,我很抱歉。按ctrl键,然后拖动到swift文件并创建出口。1:将类指定给viewController 2:使用Shift-Alt-Cmd-K清理项目 3:首先退出Xcode并清除派生数据。
转到:~/Library/Developer/Xcode/DerivedData检查
IBOutlet
是否未连接:
情节提要
中选择UIViewController
,然后在屏幕右侧选择身份检查器
,并分配适当的类别ui按钮
,然后插座应该是这样的,为插座编写代码,然后连接到视图控制器:
@IBOutlet weak var theButton: UIButton!
在Objective-C中创建这样的出口
@property (nonatomic, weak) IBOutlet UIView *view;
或者像斯威夫特3
@IBOutlet weak var instruction: UILabel?
然后按图中所示连接它
有时,由于子类化,连接操作和出口的正常方式不起作用。这种方法在这种情况下非常方便。另一种方法就是在视图控制器中手动创建按钮名称,如下所示-
@IBOutlet weak var button: UIButton!
然后通过拖动连接按钮以查看控制器,如图所示[!
PS:-也请清理派生数据。在尝试了一些给定的解决方案后,最终成功的方法是重新启动my macbook。这似乎是XCode方面的一个bug。哦,好吧。我们有时也会看到这个问题,因为
XCode 8
,并假设这是一个XCode bug
作为解决办法:
- 在代码
@IBOutlet弱var myUiElement:UIView!中写入插座。
- 按住Ctrl键并将其从插座拖动到情节提要中的UI元素
我已通过以下过程解决了问题
希望这对您有用!!是的,您可以先用鼠标选择可编辑的Ctrl+Dreg连接到swift文件并创建IBOutlet和IBActionstry,然后先编写IBOutlet,然后将其连接到适当的视图。@NikhilManapure是的,这样做有效。但反过来做不行。奇怪的是,它工作正常我的其他ViewControllers,就是我无法做到的这个特定UIView。这主要是因为XCode错误,因为XCode更新太多,有时也是因为XCode无法识别类。这已经发生在我身上太多次了。这是一个UIView子类,我已经做了所有这些,但运气不好:(我也有同样的问题,但当我按照你所描述的那样做时,当我运行应用程序时,变量为零。xcode显示了连接,但我不认为这真的发生了,因为变量为零。我使用的是xcode 9,我知道它有很多错误,但UIView子类中可能不支持IBoutlet。是的!找到了困难的方法!谢谢。我是如何做到的。)在创建xib后,Xcode中的默认设置是什么?谢谢你的回答。省去了我的一些麻烦。。。