从另一个UIViewController的.xib文件在ViewController.h中创建IBOutlets

时间:2012-03-02 23:37:44

标签: objective-c ios uiviewcontroller iboutlet

我目前正在阅读Lucas Jordan的“开始iOS 5游戏开发:使用适用于iPhone,iPad和iPod Touch的iOS SDK”。在本书中,有一节介绍了如何使用各种UIViewControllers制作“Rock,Paper,Scissors”游戏。我的问题是我不能从ViewController_iphone.xib(顾名思义,是为iPhone制作)创建一个IBOutlet,它与每个新项目附带的ViewController.h文件一起。

在ViewController_iPhone.xib中,我创建了一个UIView,并将文件的.xib所有者设置为ViewController_iPhone.xib。当我按住Ctrl并单击并尝试将视图链接到ViewController.h时,它根本不给我这样做的选项。当我将文件的所有者更改为ViewController时,在ViewController.h中创建IBOutlets不是问题,但是这不是正确的文件所有者,它将允许程序正常工作。

我已经下载了这本书的源代码,而且这本书的作者似乎没有任何问题,无论如何创造出这些书。我把我的项目与他进行了比较,我似乎无法找到问题所在。

如果有人能帮助我,我将非常感激。 谢谢!

Fitzy

2 个答案:

答案 0 :(得分:1)

您应该将文件所有者设置为您案例中UIViewController的关联ViewController的名称。

通常,如果将文件所有者设置为XViewController,则只能将IBoutlet链接到该视图控制器。

答案 1 :(得分:0)

MVC模型,模型 - 视图 - 控制器模型,不打算在一个视图中触摸另一个视图的控制器。在InterfaceBuilder中,您应该只能将操作附加到该特定视图的控制器。

您可能想要的是将信息从一个视图控制器转发到另一个视图控制器的某种方式 - 我倾向于使用代理,但不知道您正在做什么,我不知道这是否是正确的答案