这是一个真正的'WTF?'我的时刻。
我从另一个项目中复制了一些类,包括复制和粘贴代码以及一些UIBulder组件。没有被复制的是XIB文件(我从XIB转到故事板)。
我的标签/滑动识别器没有激活,当我向下钻取我能发现的唯一可以解释它的东西,不知何故,某种程度上,我正在与XIB文件挂钩。 (当我点击标题中IBAction / IBOutlet行旁边的小按钮时,它会显示故事板和xib文件已连接)。
我没有在我能找到的任何地方引用该文件,它只是在Xcode中以某种方式神奇地识别出来。我不知道该怎么办,如何解决这个问题。
有人有什么想法吗?
编辑:真正讨厌的一点是,当我检查文件时,文件似乎不在我的文件列表中,我不能只删除那种方式的引用。由于它引用了原始项目中的文件,我不能只删除它。 (在任一项目中进行的任何更改都会导致BOTH项目中的更改;由于某种原因,它们都使用相同的xib文件)。我应该能够简单地删除对xib文件的引用,但我找不到引用。
答案 0 :(得分:12)
我遇到了同样的问题。为我解决的是关闭两个项目,从两个项目中删除派生数据,然后重新打开目标项目。
我同意,这是一个疯狂的问题。
答案 1 :(得分:9)
如果将视图控制器代码从一个项目复制到另一个项目中,您会发现插座发生了一件奇怪的事情。它是在没有连接任何插座的情况下引用第一个项目的视图。
如果您左键单击小圆圈并单击参考链接,您甚至可以将其带到另一个项目的故事板视图中。试图找出如何摆脱这个参考可能会让你发疯。
好吧,好消息是你没有什么可以解决的。你没有复制一些深层次,难以找到的引用链接。 Xcode只是让人感到困惑,因为两个项目中的View Controller和插座名称都是相同的。基本上只是忽略那个小圈子说的话。你可以关闭第一个项目,Xcode最终会解决问题。右键单击故事板中的视图,以查看当前项目中确实存在哪些引用插座。 (有关详细信息,请参阅my fuller answer。)
无需删除派生数据。无论如何,这并不能解决问题。只是尝试再次打开两个项目,你会得到同样的奇怪行为。
我想出来的方法是分别创建两个具有相同名称的视图控制器和具有相同名称的引用插座的新项目。我从来没有复制任何东西,但Xcode显示有人引用了另一个。就像我说的,忽略小圆圈。
答案 2 :(得分:3)
我确信这个问题可能会发生,我修复了它删除XCode的Derived数据文件夹的内容。
我只想添加如何删除这些文件的步骤:
我希望它有助于某人
答案 3 :(得分:1)
除非xib文件在项目中。它不应该有它的链接。
xib文件连接到.h文件。不是相反。
您可能希望删除故事板中的连接并重新连接它们。
还要确保故事板是正在启动的UI,并且导航堆栈上的项目实际上是故事板页面。但是您应该能够同时将storyboard和xib文件连接到类。您只是无法将一个IBOutlet连接到单个ui组件中的多个对象(例如,故事板上的两个按钮不能同时连接到@property IBOutlet UIButton *myCurrentButton
,您必须为每个连接分别设置一个IBOutlet。另一方面,任何数字动作可以连接到IBAction。这就是你在每个动作上获得(id) sender
的原因。
我不知道这是否正是您所遇到的问题,但我希望这种理解可以帮助您调试问题。