【发布时间】:2011-12-23 07:19:44
【问题描述】:
如果我有两个带有多个视图的 nib,有没有办法在它们之间使用 addSubview: 方法?我想做的是从其中一个 nib 中获取一个视图,并告诉它添加一个子视图,该子视图将是另一个 nib 文件中的视图。
我将它们放在单独的 nib 中的原因是因为第二个 nib 的子视图将被添加多次,使用相同的模板但参数不同。
【问题讨论】:
如果我有两个带有多个视图的 nib,有没有办法在它们之间使用 addSubview: 方法?我想做的是从其中一个 nib 中获取一个视图,并告诉它添加一个子视图,该子视图将是另一个 nib 文件中的视图。
我将它们放在单独的 nib 中的原因是因为第二个 nib 的子视图将被添加多次,使用相同的模板但参数不同。
【问题讨论】:
是的,您可以将一个 nib 中的视图作为子视图添加到另一个 nib 中的视图。
您需要创建一个 NSViewController 对象,该对象将拥有子 nib。这样一来,一旦您初始化视图控制器,与之关联的 nib 就会被加载。现在您可以使用控制器的 view 属性并将其作为子视图添加到任何其他视图。
下面的代码将帮助你更好地理解:
YourViewController.m
-(id)init
{
self = [super init];
if(nil != self)
{
[NSBundle loadNibNamed:@"myNibName" owner:self];
}
return self;
}
YourOtherClass.m
-(void)addYourViewControllerViewAsSubview
{
YourViewController *yvc = [[YourViewController alloc] init];
[yourOtherViewOutlet addSubview:yvc.view];
}
【讨论】: