0

如何从以编程方式创建的 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 中)

4

1 回答 1

1

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

首先在界面生成器中为视图制作一个笔尖,并确保将其自定义类设置为您的视图类,见图:

在此处输入图像描述

然后将其加载到您的代码中,如下所示:

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;
    }
}
于 2012-09-27T17:53:22.993 回答