2012-01-17 89 views
1

我有一个UIViewControllerMyClass最初没有XIB,并已编程初始化。现在,我不想从XIB加载它,但我想制作一个小的50x50 UIView(设置叠加视图),并且我想将其添加到MyClass,因此,而不是以编程方式声明新的设置叠加视图,我以为我会创建一个XIB文件,将文件的所有者设置为MyClass,在MyClass.h中声明一个IBOutlet UIView *settingsOverlay,并将其链接到XIB中。添加UIView子视图不工作

然后在viewDidLoad方法中,我做了[self.view addSubview:settingsOverlay],但由于一些令人讨厌的原因,它不起作用。它只是不显示。我尝试以编程方式创建一个简单的UIImageView并将其添加到子视图中,并且它工作得很好,但是通过XIB完成时,它不起作用。任何人都可以指出什么可能是错的?请让我知道我可能需要包含哪些其他细节。

+0

你能展示一些代码吗?你如何初始化控制器? XIB文件的文件名是什么? – murat 2012-01-17 16:32:25

回答

1

创建用于设置重叠视图的厦门国际银行,并设置它的主人到MyClass的不会隐导致该XIB被加载的手动实例化一个结果我的课。您将不得不手动加载MyClass viewDidLoad中的设置覆盖视图XIB,并将其添加为子视图。加载它并将所有者作为自身传递将导致它绑定到您创建的IBOutlet,但是您仍然必须将其添加为子视图。

在viewDidLoad中的代码应该是这样的:

[[NSBundle mainBundle] loadNibNamed:@"OverlayView" owner:self]; 
[self.view addSubview:self.overlayView]; 
1

您需要settingsOverlay将被设置为加载MyClass的厦门国际银行。尝试在addSubview调用之前添加此行。

[[NSBundle mainBundle] loadNibNamed:@"MyClass" owner:self options:nil]; 
相关问题