我有一个包含自己的.nib文件的ViewController,我想将另一个.nib加载到这个ViewController中,这将是一个各种菜单...但是我只是不确定如何做到这一点,并希望一些帮助。
在我向您展示代码之前,我将解释我所做的事情。
然后我运行下面的代码尝试加载单独的笔尖作为子视图但是当我运行它时,另一个笔尖的子视图没有显示....
jumpBarPortraitNib = [[UIView alloc] initWithFrame:CGRectMake(0.0, 50.0, 320.0, 367.0)];
// add jumpbar container to view
[self.view insertSubview:jumpBarPortraitNib belowSubview:actionTabBar];
答案 0 :(得分:3)
这里显然有些混乱。
nib只是一个包含(*)对象的存档,包括(通常)一个或多个视图对象(在您的情况下为UIView
)。您没有“将笔尖加载为子视图”。您实例化nib,可能会将其交给UIViewController
来拥有和管理它,并将nib中引用的视图添加到视图层次结构中。
您对第一行代码所做的就是创建一个具有给定帧大小的通用UIView
实例,并将其插入到[自我视图]中。你写的实际引用笔尖的内容中只有 nothing ,即使你把你的视图误称为笔尖。
对于你正在做的事情,我可能会选择两条路线之一:
IBOutlet
。然后,您可以在已设置为nib文件所有者的常见UIViewController
实例中轻松显示菜单。UIViewController
实例将只是管理功能表视图,以及您将使用通过实例笔尖的内容-initWithNibName:
作为@Aaron提及。 (请注意,您不需要在外部设置框架;框架将作为视图的属性存储在笔尖中。)*:不是,但你可以这样想。
答案 1 :(得分:0)
您需要使用initWithNibName,然后在以下行中设置框架:
UIViewController * jumpVC = [[UIViewController alloc] initWithNibName:@"jumpBarPortrait" bundle:nil];
jumpVC.view.frame = //your frame