如何获取对 .nib 文件中对象的引用?

Posted

技术标签:

【中文标题】如何获取对 .nib 文件中对象的引用?【英文标题】:How to get a reference to an object in a .nib file? 【发布时间】:2012-05-15 14:46:09 【问题描述】:

到目前为止,我已经在代码中完成了大多数视图编程,但是在代码中完美定位按钮确实很麻烦。我搜索了一段时间,也许我在搜索时使用了错误的词?无论如何,我在一个 nib 文件中创建了一个 UI,它有几个按钮。我像这样将 .nib 文件加载到我的视图中:

NSArray* nibViews =  [[NSBundle mainBundle] loadNibNamed:@"UCMenuView" owner:self options:nil];
UIView *menuView = [nibViews objectAtIndex:0];
self.delegate = (id<UCMapviewDelegate>)delegate;
// another controller does the view switching, so I'm sending him the view  
[self.delegate pushView:menuView];

这很好。但我不明白如何获得指向按钮的指针。我知道 IBOutlet,但是如何将它们连接到 .nib 中的元素?我将如何连接这个@property (strong, nonatomic) IBOutlet UIButton *calendar; 到 .nib 中的特定按钮?

我尝试按 ctrl-drag(从 @property 左侧的那个小点,但这不起作用(从任何一方)。如果这是一个简单的问题,请原谅,但我找不到解释清楚

感谢您的帮助

【问题讨论】:

【参考方案1】:
    不仅仅是UIView *menuView,您需要创建一个自定义 UIView 子类,例如UCMenuView。在此自定义上定义您的属性 类。 在编辑器中打开您的 .xib 文件,选择 File's Owner 左列并在标识中设置其 Custom Class 检查员到UCMenuView。 右击左侧栏中的File's Owner,然后连接 您的 IBOutlets。

【讨论】:

我猜这个类必须继承自 UIView?【参考方案2】:

查看本教程: http://developer.apple.com/library/ios/#documentation/IDEs/Conceptual/Xcode4TransitionGuide/InterfaceBuilder/InterfaceBuilder.html 或者 http://www.hongkiat.com/blog/ios-development-guide-part2-your-first-app/

亲切的问候, 博

【讨论】:

【参考方案3】:

请参阅 Apple 的文档:Creating and Connecting an Outlet 以及更普遍的 Designing User Interfaces in Xcode。

【讨论】:

链接已损坏

以上是关于如何获取对 .nib 文件中对象的引用?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 nib 中传递对对象的 init 方法的引用?

如何在 MAC OSX 上获取 NIB 文件的资源

如何获取对数组中对象的引用[重复]

如何从特征对象中获取对具体类型的引用?

当“内容数组”-Binding 获取内容时,如何从 ArrayController 中删除对象?

Jquery 创建插件 - 如何在动画回调方法中获取对我的对象的 $(this) 引用?