此问题可能与iOS相似, 但OS X 。我已经挣扎了三天,只是尝试使用故事板在NSView
内嵌入NSViewController
或NSView
。
使用.xib或.nib可以正常工作:(当按下下一个按钮时,它会在容器视图中显示customView1或customView2。
尝试使用故事板它不起作用。事实上,我没有关于如何连接,嵌入,调用,召唤或请求customView1
或customView2
以使自己进入容器视图的概念或线索。
似乎我无法访问它自己的View Controller之外的任何东西!?!
正常工作功能的示例(来自.nib):
答案 0 :(得分:2)
这是一种方法。
您可以将两个“容器视图”对象添加到主视图控制器,作为顶级对象,并将它们连接到控制器中的NSView
个出口。这将自动创建两个新的视图控制器场景,Embed
从容器视图到子视图控制器进行分段。
您的视图控制器现在引用了两个内部NSView,您可以根据需要操作它们。
如果您需要对子视图控制器的引用,请为每个Embed
segue分配一个故事板标识符并实现-prepareForSegue:sender:
- (void)prepareForSegue:(NSStoryboardSegue*)segue sender:(id)sender
{
if ([segue.identifier isEqual:@"Embed1"])
{
_innerController1 = segue.destinationController;
}
else if ([segue.identifier isEqual:@"Embed2"])
{
_innerController2 = segue.destinationController;
}
}
除了segues之外,您还可以为每个内部视图控制器分配一个storyboard标识符,并在故事板中的代码中实例化它们:
_innerController1 = [self.storyboard instantiateControllerWithIdentifier:@"InnerController1"];
您也可以自由地混合使用Storyboards和NIB,因此您可以在单独的NIB中设计内部视图并在代码中实例化它们。