Iphone 以编程方式将uilabel添加到xib原因的视图控制器';没有可见的@Interface';错误

Iphone 以编程方式将uilabel添加到xib原因的视图控制器';没有可见的@Interface';错误,iphone,ios,objective-c,xcode,ipad,Iphone,Ios,Objective C,Xcode,Ipad,我只习惯用xcode编写故事板,但我的新老板希望每个人都用xib文件完成,而我对此没有经验 到目前为止,我所做的只是创建了一个新的单视图应用程序,并在“viewDidLoad”方法下添加了代码 UILabel *scoreLabel = [ [UILabel alloc ] initWithFrame:CGRectMake(0, 0.0, 150.0, 43.0) ]; [self addSubview:scoreLabel]; 线路呢 [self addSubview:scoreLabe

我只习惯用xcode编写故事板,但我的新老板希望每个人都用xib文件完成,而我对此没有经验

到目前为止,我所做的只是创建了一个新的单视图应用程序,并在“viewDidLoad”方法下添加了代码

UILabel *scoreLabel = [ [UILabel alloc ] initWithFrame:CGRectMake(0, 0.0, 150.0, 43.0) ];

[self addSubview:scoreLabel];
线路呢

 [self addSubview:scoreLabel];
抛出错误“ViewController”的“No Visible@Interface”声明选择器“addSubView”


我到底错过了什么

self
是一个
UIViewController
。将子视图添加到
ui视图
。您所需要的只是:

[self.view addSubview:scoreLabel];

self
是一个
UIViewController
。将子视图添加到
ui视图
。您所需要的只是:

[self.view addSubview:scoreLabel];

您正在尝试将子视图添加到控制器?它应该被添加到视图中。

您正在尝试向控制器添加子视图吗?它应该指向视图。

viewDidLoad
是UIViewController的一种方法,而不是UIView。 要使代码正常工作,请替换:

[self addSubview:scoreLabel];   


要从xib添加标签,不需要上述任何代码。在.h文件中,必须使用IBOutlet声明属性。然后,在.xib中添加标签,并将其引用出口设置为声明的属性。我承认,一开始它并不直观。

viewDidLoad
是UIViewController的一种方法,而不是UIView。
self.view will be the view of the view controller.
要使代码正常工作,请替换:

[self addSubview:scoreLabel];   

要从xib添加标签,不需要上述任何代码。在.h文件中,必须使用IBOutlet声明属性。然后,在.xib中添加标签,并将其引用出口设置为声明的属性。我承认,一开始这不是直觉

self.view will be the view of the view controller.
因此,您可以添加视图ie;仅将子视图添加到视图。不是它的控制器。 self将是此处的视图控制器

因此,您可以添加视图ie;仅将子视图添加到视图。不是它的控制器。
self将是这里的视图控制器

那么.xib文件本质上与脚本屏幕相同吗?顺便说一句,谢谢。是的,xib和故事板场景基本上是一样的。所以。xib文件和故事板屏幕基本上是一样的吗?顺便说一句,谢谢。是的,XIB和故事板场景基本上是一样的