如何从以编程方式创建的 UIViewController 加载界面构建器创建的 View ?我正在使用 Objective-C。
我能够从一个不使用界面生成器的引用项目开始,所以我没有 Storyboard。我已成功以编程方式加载 View ,但希望能够加载一些由界面生成器创建的 View 。
更多详细信息:我有 2 个 View Controller A 和 B。我当前位于 A 中。我单击一个按钮,然后在该按钮处理程序中加载 View Controller B,如下所示:
self.viewControllerB = [[ViewControllerB alloc] init];
[self.navigationController pushViewController:viewControllerB animated:YES]
我手动创建了一个带有 .m 和 .h 的 ViewB。如果我使用 initWithFrame,其中定义了一堆控件并以编程方式布局它们,我可以按照上面的描述成功调用它。
我向项目添加了一个新文件,该文件是一个 UIView,它将在构建器中显示。将 TableView 拖放到 View 上,现在我只想查看此负载。 我将 xib 命名为 ViewB.xib,将类设置为 ViewB,如下图所示(在答案 1 中)
最佳答案
每当您需要从 .xib 加载 View 时,请使用以下命令:
首先在界面生成器中为 View 创建一个 Nib ,并确保将其自定义类设置为您的 View 类,请参见图片:
然后将其加载到您的代码中,如下所示:
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;
}
}
关于ios - 以编程方式创建的 UIViewController 加载界面构建器 view.xib 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12626570/