2010-09-30 79 views
9

我想要做一些简单的事情,就像在XCode和IB中向视图添加标签一样,我无法弄清楚如何去做。我在网上找到的所有样本都是针对较早版本的IB,因此方向不正确。在Interface Builder和XCode中连接UILabel?

我的.xib文件上有一个标签,在我的Controller.h文件中,我有一个IBOutlet UILabel声明了Property的设置。

在我的Controller.m文件中,我合成了Property。

在Interface Builder中,我不能为我的LIFE弄清楚如何将我的代码中的标签与.xib上的Label关联起来。 每当我尝试拖动连接到文件的所有者,唯一显示的选项是“查看”。

如果我在界面生成器的库窗口下查看控制器,标签显示为出口下的UILabel。我很确定它曾经是一个“id”类型,但它自动显示为UILabel,如果我尝试添加一个“id”,它也不起作用。

有人能指点我来解释这个愚蠢的事情吗?使标签具有文字应该不是很难。

+0

请张贴Controller.m或者和.h文件 – ennuikiller 2010-09-30 00:45:58

+0

PackViewController.h:http://pastebin.com/ DesS8j50 PackViewController.m:http://pastebin.com/jasum3SB – 2010-09-30 00:59:16

+0

他没有任何问题声明iboutlet。他只需要正确连接它。 Hes试图将标签连接到仅显示VIEW的实际文件所有者图标。 如果你只是看看我发给你的信息,我写了一堆代码,它和pselus一样,但这只是为了确保你正确地书写代码。然后我们进入interfacebuilder,我解释你需要在帖子中做什么。检查下面。谢谢 PK – Pavan 2010-09-30 01:02:06

回答

8

假设你的视图叫做ExampleView。点击文件拥有者,然后按⌘+ 4。这将突出显示身份框。确保班级名称与班级名称相同。

保存并关闭Interface Builder中,然后进入Xcode和验证:

// ExampleViewController.h 
#import <UIKit/UIKit.h> 

@class ExampleViewController; 
@interface ExampleViewController : UIViewController { 

    IBOutlet UILabel *label; 
} 

@property (retain, nonatomic) IBOutlet UILabel *label; 

@end 

在您.m文件:

// ExampleViewController.m 
#import "ExampleViewController.h" 

@implementation ExampleViewController 

@synthesize label; 

然后保存的Xcode文件,并打开你的ExampleView。将标签拖到视图上。您不应该将该标签连接到“文件”所有者。

如果您不点击文件夹, HIT⌘+ 2这将打开连接框。那么你会看到你的出路。点击并将其连接到您的标签。

+0

使用这种技术看起来好像它会起作用,但现在当我尝试加载该视图时,我得到一个“SIGABRT”错误,该消息是“该类不是关键值编码 - 关键的cardNameLabel”。 – 2010-09-30 01:07:28

+0

我注意到你的代码中有一个错误... 在你的.H文件....你应该添加IBOUTLET属性后(保留,非原子)IBOUTLET uilabel * cardnamelabel。你只是wronte财产(保留,非原子)uilabel * cardNamelabel。这不是一个iboutlet – Pavan 2010-09-30 01:10:46

+0

我改变了我的代码来使用你的,除了**,是必需的,在这个世界是什么? – 2010-09-30 01:11:33

3

确保您的财产线是这样的:

@property (nonatomic, retain) IBOutlet UILabel *label; 

离开(或设置)标签的类型在Interface Builder UILabel。如果这不起作用,请尝试文件 - >重新加载界面生成器中的所有类文件。你的代码看起来不错,但CardNameLabel应该以小写'c'开头。

+1

声明你的UILabel作为一个属性是可选的。 – 2010-09-30 00:59:32

2

试试这个:点击文件的所有者图标来选择它,并转到督察的身份标签(4片),并检查Class设置的值。我的猜测是,它现在设置为UIViewController

由于有IBOutlet你宣称类是(或者应该是)的UIViewController一个子类,你需要的类名更改为子类的名称(例如,MyController,或无论它目前的名字命名) 。

0

假设你有一个viewController和一个有这个UILabel的xib文件。要连接的步骤的UILabel(也是厦门国际银行文件)您的viewController是:

1)在头文件,为它创建

IBOutlet UILabel *label; 

@Property (Nonatomic, retain) IBOutlet UILabel *label; 

的UILabel对象和属性,并在synchthesize它实现文件

2)在Interface Builder中打开XIB文件

的“文件的所有者”,然后在弹出窗口下拉列表中选择的viewController连接您的厦门国际银行双击文件到控制器

3)用鼠标右键单击文件的所有者,在弹出的对话框:

  • 点并拖动旁边的毛毛(+)“查看”,将其放到查看排
  • 点和阻力毛绒(+)旁边的“标签”,并将其放在标签上查看

=>现在的标签和连接到您XIB文件视图控制器