如何将视图控制器的视图连接到另一个xib文件?

问题描述:

我做了一个新的基于视图的应用程序项目,它有一个MyProjectViewController.xib。然后,我创建了一个具有冒用的XIB文件的AnotherViewController类。我用IB打开了MyProjectViewController.xib,并在窗口中放置了一个“View Controller”对象。但是现在我想用MyProjectViewController.xib的视图钩住视图控制器的视图。我认为在IB中没有办法做到这一点。我必须以编程方式进行吗?如何将视图控制器的视图连接到另一个xib文件?

事情是,AnotherViewController将创建一个XIB的权利?我认为我必须以某种方式把它挂起来,否则它就会“失去太空”。希望你明白我的意思......

你可以创建一个UIView派生类(.h和.m),在Xcode中调用它的AnotherView,然后创建一个视图XIB(也在Xcode中)。在IB中打开XIB并将视图的类标识更改为UIView派生类AnotherView的名称。定制IB UIView的你的心内容,然后你像这样的东西加载它作为一个子视图在您的视图控制器:

NSArray *array = [[NSBundle mainBundle] loadNibNamed:@"AnotherView" 
               owner:self options:nil]; 

// Will need to #import "AnotherView.h" for this to work 
AnotherView *view = (AnotherView*)[array objectAtIndex:0]; 
// Size the view to whatever you need it to be 
[view setFrame:viewRect]; 
// Add it to the view hierarchy of the view controller's view. 
[[self view] addSubview:view]; 

让我知道如果你需要任何澄清。

+0

嗨马特,感谢您的帮助。其实我想在IB中做所有事情,而不是以编程方式。我的问题是,我配置了基于视图的应用程序模板附带的第一个视图控制器的xib。在那里,我想把另一个视图控制器放在视图是主视图的一个小子视图。要用自制的uiview子类来尝试。也许有用。 – openfrog 2009-12-15 21:53:10

+1

在这种情况下,您可以在视图控制器的XIB中创建另一个UIView,并自定义添加您在*视图控制器中连接的动作和插座。 – 2009-12-15 22:14:16