XCode 6:无法将任何IBOutlet连接到ViewController
升级到Xcode 6后,我打开了一个旧的项目(包含一个子项目,所以它有很多的目标),我注意到从故事板ViewContoller没有链接到相对对象的作品。
例如,我有一个ViewController与一个TableView里面,现在我不能做任何东西,因为连接丢失,我什至不能重新定义一个新的IBOutlet VC中,因为VC中的故事板的箭头赢得不要连接任何东西。
更清楚的是:
该类在“自定义类”部分中定义,所以我找不到问题
我该怎么办? 顺便说一句,我使用obj – C不快,我发现了一些相关的答案,但所有关于迅速。
谢谢
您还可以看到,父视图和自定义类之间的链接被破坏(不再可见),这是一个巨大的问题。
我和我正在处理的应用程序有完全相同的问题,将XCode从5.xxx更新到6.1。 解决方法,我工作是删除每个视图控制器的引用,并重新添加到项目中…
面对这个问题的每个人,这都是(烦人的)把戏:
- 第1步 :select.h和.m视图控制器文件
- 第2步 :删除这些文件的引用
- 第3步 :重新将文件添加到您的项目树
- 第4步 :打开故事板,最终重build项目和微笑
我可以理解这些事情可能会令人厌烦,但它对我来说很有效…希望它能帮助别人!
在故事板层次结构中,select“视图控制器”
在右窗格Custom Class section Class
,select下拉菜单和所需的视图控制器。
在尝试将第一个插件添加到新视图时,我在Xcode 6.1.1中遇到了类似的行为。
尝试删除引用,并再次添加文件,如上所述,没有成功。
我find的工作是用手写出新视图的第一个属性。 我刚刚popup:
@property NSString *temp;
我可以用正常的方式连接我的网点。 一旦你添加了你的第一个出口,只要删除临时的财产。
希望这可以帮助。
它似乎先打字的sockets(迅速):
@IBOutlet weak var someViewOutlet: UIView!
然后从上面的代码工程中将IB从出口拖到最右边的types。
重新启动Xcode解决了这个问题(有时)。 使用Xcode 6.1
也许我可以帮助在我的情况下,问题是viewController.swift文件没有连接到StoryBoard。 解决的办法是点击3个图标(View Controller,First Responder和Exit)旁的故事板上视图的上边框…现在查看Utility Area中的Identity Inspector,在“Custom Class”中select定制视图控制器。
希望这可以帮助。 Xcode很难!
这里的人是适当的解决scheme。
如果您在代码中重命名控制器,则需要更新.xib文件。
我找不到在xcode中这样做的方法,所以这样做:
-
用文本编辑器打开.xib文件
-
在
<objects>
节点中find带有属性placeholderIdentifier="IBFilesOwner"
的<placeholder>
节点,并用您的新控制器名称replacecustomClass="MyOldControllerName"
的值:customClass="MyNewControllerName"
所有的IBOutlets将再次正常工作。
感谢大家的评论。
这是Xcode 6 / 6.0.1的一个bug。 下载并安装了6.1版本,问题消失了。
也许尝试从故事板菜单(在你的屏幕截图中)删除sockets,并再次拖动元素。
好的,我们来看看是否缺less模块名称。
- 在Storyboard ViewController中,input模块的名称。 (项目名称)
在另一个领域的外面玩。 当你回到模块领域可能会说没有,但现在将有一个下拉菜单项为您的项目名称。
- select你的项目名称,看看是否一切都好。
如果还有问题,我会张贴照片。
似乎是一个工作区问题。 尝试从工作区删除项目并重新添加。 这有助于我的情况。
我有这个,影响了我的机器上的所有项目,迅速和客观的C,使我生气了很久。 最后也注意到我无法使用折射器来重命名类。
对我的修复是:
- closuresxcode
- 删除〜/库/开发/ Xcode / DerivedData(只是自己做这个没有工作!!)
- 从包含我所有项目的目录中删除所有项目的所有用户数据。例如/ src(注意这个命令!):
找 。 -name'xcuserdata'-exec rm -rf {} \;
如果您想手动完成,只需对所有项目执行以下操作:删除.xcodeproj / project.xcworkspace / xcuserdata删除.xcodeproj / xcuserdata / .xcuserdatad
- 让聚光灯重新索引驱动器所有我的项目(不知道这是否是必需的
- 重新启动机器
一切都回到生活中!
我有这个相同的问题。
原来我重命名我的视图控制器类和文件名。 在故事板中,我在右窗格Custom Class – > Class中显示了陈旧的值。 所以IBOutlets没有调整,因为在失踪的class级里没有任何人,这是它期望find定义的网点的地方。
在右侧窗格的“自定义类”字段中填写正确的“视图控制器”类名,可以解决我的问题。
如果在“自定义类”字段中有错误的类名,则XCode需要更加详细。
没有一个解决scheme解决了我的同样的问题…但我解决了:
- closuresxcode
- 重命名项目的文件夹
- 打开xcode
然后网点会再次回来
我希望这个解决scheme对于有同样问题的人来说是正确的
在Xcode 6.3中,我需要closuresXcode并重新启动Mac。 单独重新启动Xcode并不适合我。
我有很长一段时间6.3,我的问题是我正在创build的新项目来testing一些事情。 这次绝对不是升级问题。
我有Xcode 6.3,看到类似的问题。 最后在.h文件中的几个编辑解决了我的问题。 如果你的界面有IBOutlet定义为
@interface NavigationViewController :UIViewController { IBOutlet UILabel *lblName; }
将其更改为.m文件并添加@synthesize lblName;
@interface NavigationViewController :UIViewController { __weak UILabel *lblName; } @property (nonatomic, weak) IBOutlet UILabel *lblName;
我遇到了同样的问题,没有可用的链接。 我能够修复它的唯一方法是将XIB文件的所有者类更改为“UIViewController”,使链接,然后将其更改回我的预定义的自定义视图控制器类。 链接保持不变,一切都很好。