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

Posted

技术标签:

【中文标题】从另一个 UIViewController 的 .xib 文件在 ViewController.h 中创建 IBOutlets【英文标题】:creating IBOutlets in ViewController.h from another UIViewController's .xib file 【发布时间】:2012-03-02 23:37:44 【问题描述】:

我目前正在阅读 Lucas Jordan 的“开始 ios 5 游戏开发:使用适用于 iPhone、iPad 和 iPod Touch 的 iOS SDK”。在本书中,有一节指导您使用各种 UIViewController 制作“石头、纸、剪刀”游戏。我的问题是我无法从 ViewController_iphone.xib(顾名思义,它是为 iPhone 制作的)到每个新项目附带的 ViewController.h 文件创建 IBOutlet。

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

我已经下载了这本书的源代码,这本书的作者似乎没有任何问题来创建 outlet。我已经将我的项目与他的项目进行了比较,但我似乎找不到问题所在。

如果有人可以帮助我,我将不胜感激。 谢谢!

菲兹

【问题讨论】:

【参考方案1】:

您应该将文件所有者设置为关联的UIViewController 的名称,在您的情况下为ViewController

一般来说,如果您将文件所有者设置为XViewController,那么您只能将 IBoutlets 链接到该视图控制器。

【讨论】:

我想我可能有点不清楚,iPhone有一个单独的UIViewController,叫做ViewController_iPhone。 @Fitzy - 你有 ViewController_iPhone.h 和 ViewController_iPhone.m 吗?还是只是 ViewController_iPhone.xib? 我有 ViewController_iPhone.h 和 ViewController_iPhone.m 没关系,我想通了,我需要做的是从 ViewController 继承 ViewController_iPhone。还是谢谢! 酷。但是让我感到困惑的是您说:“我的问题是我无法创建从 ViewController_iphone.xib [...] 到 ViewController.h 文件的 IBOutlet” 【参考方案2】:

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

您可能想要的是将信息从一个视图控制器传递到另一个视图控制器的某种方式——我倾向于为此使用委托,但在不了解您在做什么的情况下,我不知道这是否是正确的答案.

【讨论】:

以上是关于从另一个 UIViewController 的 .xib 文件在 ViewController.h 中创建 IBOutlets的主要内容,如果未能解决你的问题,请参考以下文章

从另一个 UIViewController 中呈现一个 UIViewController?

如何从另一个 UIViewController 触发 UITabBarController 的一个 UIViewController?

有没有办法查看当前 UIViewController 是不是从另一个 UIViewController 的解雇中出现

如何从另一个 UIViewController 更改分段控件标题(设置)

从另一个 UIViewController 刷新表

如何从另一个 UIViewController 重新加载 UITableViewController