Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa:从不同的类和nib向视图添加子视图_Cocoa_Nsview_Nib - Fatal编程技术网

Cocoa:从不同的类和nib向视图添加子视图

Cocoa:从不同的类和nib向视图添加子视图,cocoa,nsview,nib,Cocoa,Nsview,Nib,如果我有两个具有多个视图的NIB,有没有办法在它们之间使用addSubview:方法?我想做的是从其中一个nib获取一个视图,并告诉它添加一个子视图,该子视图将是另一个nib文件中的视图 我将它们放在单独的nib中的原因是,第二个nib的子视图将使用相同的模板但不同的参数多次添加。是的,您可以将一个nib中的视图作为子视图添加到另一个nib中的视图 您需要创建一个NSViewController对象,它将拥有子nib。因此,只要初始化视图控制器,就会加载与其关联的nib。现在可以使用控制器的vi

如果我有两个具有多个视图的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; 
}
-(void)addYourViewControllerViewAsSubview
{ 

    YourViewController *yvc = [[YourViewController alloc] init];

    [yourOtherViewOutlet addSubview:yvc.view];

}
YourOtherClass.m

-(id)init 
{    
    self = [super init];

     if(nil != self)
     {
         [NSBundle loadNibNamed:@"myNibName" owner:self];
     }

     return self; 
}
-(void)addYourViewControllerViewAsSubview
{ 

    YourViewController *yvc = [[YourViewController alloc] init];

    [yourOtherViewOutlet addSubview:yvc.view];

}