2015-04-01 125 views
0

我已经为视图控制器创建了文件AViewController.h和AViewController.m - 我已将此视图控制器的自定义类设置为AViewController无法将连接器从IBOutlet链接到视图控制器

我在AViewController.h定义的对象,这是另一个B类作为一个实例:

@property (weak, nonatomic) IBOutlet B *object_b; 

我希望能够给此IBOutlet中链接到视图控制器,这样我可以使用它调用B类的函数在视图控制器上显示事物。但是,我无法做到这一点 - 试图将一行从对象拖到视图控制器什么都不做。对象旁边没有错误或黄色警告符号。我试图从视图控制器到对象,并从故事板的菜单尝试了这一点。

我的视图控制器应该重命名为'AViewController'?我有其他视图控制器名称不同于他们的自定义类,他们没有任何链接问题。

我试图解决方案: XCode 6: can't connect any IBOutlet to ViewControllerError in Xcode 6 - view controller does not have an outlet named (subview), 但他们没有工作。

我正在使用XCode 6.2

这是一个非常恼人的问题;在前面的问题中有一些关于错误报告的讨论,但我不确定它是否被解决。感谢任何帮助!

+1

您不能从一个控制器到另一个IBOutlets,如果这是你想要做什么。 – rdelmar 2015-04-01 01:41:11

回答

1

只要你的班级“B”不是视图控制器,这应该很容易。第一步是去你的故事板或相关的.xib文件,并找到对应于“AViewController”的视图控制器。然后,找到里面有白色方块的小黄圈(视图控制器的顶部),并控制并点击它。你应该看到一个黑框弹出。 (见附图)。在框中,应该有一个名为“Outlets”的部分。你在下面看到与你的“B”对象有关的线吗?如果是,则从该行右侧的白色圆圈拖到代表视图控制器上“B”类的对象。这将把它连接起来。

如果您在黑盒中没有“B”项,那么视图控制器的设置有问题。

如果您在黑盒中有“B”项,但无法将其连接到视图控制器,请执行以下步骤:确保您的视图控制器上有一个“B”级对象在故事板中。如果你不这样做,那就是你的问题。如果你这样做了,但你仍然无法实现它,你可能需要在故事板中设置对象的类类型。为此,请单击故事板上的对象,然后在xcode的右侧面板中查看(以下屏幕截图#2)。在面板中,点击第三个图标(它看起来像一个小方块)。在那里你会看到一些说“自定义班级”的东西。如果在“课堂”下,它不会说“B”,那么这就是你的问题。如果这是您的问题,请将课程设置为“B”,然后尝试使用我答案第一段中列出的步骤重新连接插座。

enter image description here

enter image description here

+0

感谢您的详细回复,Brian!我确实在黑盒中有'B'的条目,但无法连接它 - 所以我点击了我想连接的对象(ViewController上的UIImageView),并将其自定义类更改为B.(To能够在自定义类下拉列表中看到类B,我首先必须将类B的继承从UIView更改为UIImageView)。经过这一步后,链接工作正常! – 2015-04-02 03:19:40

+0

我现在想要将在类B中定义的名为image的UIImageView的另一个对象链接到ViewController上的相同UIImageView。我无法使用相同的方法做到这一点。我想这是因为,ViewController上的UIImageView现在是自定义类B,而对象图像是UIImageView的一个实例。我试图通过将UIImageView的自定义类更改为UIImageView来欺骗xcode;这样做不仅给我一个例外,而且我也看不到黑盒子里的对象'图像'了。有什么建议么? – 2015-04-02 03:29:11

+0

太棒了,很高兴它的工作。对于你的其他问题,我会创建一个关于堆栈溢出的新问题,并包含一个指向这个问题的链接。然后我可以帮你回答。按规则玩耍。 :-) – 2015-04-02 09:16:04

相关问题