将uiview添加到uiviewcontroller

问题描述:

我想添加一个我将用作菜单的50x150 uiview,并且想要将它覆盖在我的uiviewcontroller上。到目前为止,我所做的是在UIViewController类文件中声明UIView IBOutlet,并在该UIViewController xib文件中,从库中拖出一个UIView并相应地将其挂钩。将uiview添加到uiviewcontroller

menu = [[UIView alloc] initWithFrame:CGRectMake(10,10,50,150)]; 
//[self.view insertSubview:menu atIndex:0]; 
[self.view addSubview:menu]; 
//[self.view bringSubviewToFront:menu]; 

我已经尝试不同的变化,你可以看到,从其他职位的所有建议,但我什么也没有:当试图调用它的问题是它没有显示出来。我在这里走错了路吗?我错过了什么?

由于您已经在Interface Builder中连接了视图,因此不需要分配新视图。将其添加到视图控制器的主视图,代码应该是这样的:

[self.view addSubview:self.menu]; // Assuming your IBOutlet is a property called menu. 

如果你仅仅使用一个IBOutlet伊娃(not recommended),它应该是这样的:

[self.view addSubview:menu]; 
+0

哇,不敢相信我如此亲密。好吧,现在有道理,但我很好奇你为什么说IBOutlet不被推荐? – 2010-10-03 22:19:29

+0

请阅读“不推荐”链接中的文档(http://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/MemoryMgmt/Articles/mmNibObjects.html#//apple_ref/doc/uid/TP40004998- SW2)。它描述了Apple处理IBOutlets和内存管理的建议。它说你应该将IBOutlet添加到财产声明中,而不是伊娃。 – 2010-10-03 22:24:49