如何从以编程方式创建的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中)
答案 0 :(得分:1)
每当您需要从.xib加载视图时,请使用:
首先在界面构建器中为视图创建一个nib,并确保将其自定义类设置为视图的类,请参见图片:
然后将其加载到您的代码中:
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;
}
}