以编程方式创建的UIViewController加载接口构建器view.xib文件

时间:2012-09-27 17:05:32

标签: ios uiviewcontroller xib

如何从以编程方式创建的UIViewController加载界面构建器创建的视图?我正在使用Objective-C。

我能够从没有使用界面构建器的参考项目开始,所以我没有故事板。我已成功以编程方式加载视图,但希望能够加载一些创建的界面构建器。

更多细节:我有2个视图控制器A和B.我现在在A.我单击一个按钮,在那个按钮处理程序中我加载了Viewcontroller B,如下所示:

self.viewControllerB = [[ViewControllerB alloc] init];
[self.navigationController pushViewController:viewControllerB animated:YES]

我手动创建了一个带有.m和.h的ViewB。如果我使用一个initWithFrame,其中我定义了一堆控件并以编程方式将它们排出,我可以成功地调用它,如上所述。

我向项目中添加了一个新文件,这是一个UIView,它在构建器中显示它。将TableView拖放到视图上,现在我只想查看此加载。 我将xib命名为ViewB.xib,我将Class设置为ViewB,如下图所示(在答案1中)

1 个答案:

答案 0 :(得分:1)

每当您需要从.xib加载视图时,请使用:

首先在界面构建器中为视图创建一个nib,并确保将其自定义类设置为视图的类,请参见图片:

enter image description here

然后将其加载到您的代码中:

MyCustomNibView *myView;
NSArray *topLevelItems = [[NSBundle mainBundle] loadNibNamed:@"MyCustomNibView" owner:nil options:nil];

for (id view in topLevelItems) {
    if ([view isKindOfClass:[MyCustomNibView class]]) {
       myView = (MyCustomNibView *)view;
       break;
    }
}