如何在编码中用“.xib”文件替换情节提要

Posted

技术标签:

【中文标题】如何在编码中用“.xib”文件替换情节提要【英文标题】:How to replace storyboard with an '.xib' file in coding 【发布时间】:2014-03-11 05:41:37 【问题描述】:

我在谷歌搜索时发现了一个 UIPagecontrol 示例,当我尝试将其创建为一个全新的项目时,它可以完美运行。现在我想将其添加到我的代码中

@interface filename2 ()

@end

@implementation filename2

@synthesize View1;
@synthesize View2;
@synthesize View3;



- (void)viewDidLoad

// Do any additional setup after loading the view, typically from a nib.
[super viewDidLoad];

[self addChildViewController:[self.storyboard instantiateViewControllerWithIdentifier:@"View1"]];
[self addChildViewController:[self.storyboard instantiateViewControllerWithIdentifier:@"View2"]];
[self addChildViewController:[self.storyboard instantiateViewControllerWithIdentifier:@"View3"]];







@end

但我面临的问题是我没有使用情节提要我正在使用 ViewController.xib 那么如何更改此代码以将其与我的应用程序一起使用?

【问题讨论】:

【参考方案1】:

使用initWithNibName:使用xibs的方法。

例子

ViewController *v1=[[ViewController alloc]initWithNibName:@"ViewController" bundle:nil];
[self addChildViewController: v1]];

【讨论】:

我应该用 v1 作为 view1 替换 viewDidLoad 中的整个身体吗?并相应添加view2和view 3? 好吧,我照你说的做了,它显示了我主视图中的所有视图,但我无法将文件所有者添加到我的视图控制器中 显然我必须将新 UI 添加为 View 而不是 View Controller。我能够相应地分配 view1 、 view2 、 view3 ,但是当我运行我的项目时,它总是停在 Launch Image 并且不会继续前进。该怎么办?它给了我这个错误“无法加载从带有标识符的包中的笔尖引用的图像”【参考方案2】:

[self.storyboard instantiateViewControllerWithIdentifier:@"View1"] 替换为ViewController 的对象。

【讨论】:

【参考方案3】:

您是否尝试过使用

NSArray* views = [[NSBundle mainBundle] loadNibNamed: owner: options:]

Xib 是一个 xml 格式的 Nib。

【讨论】:

以上是关于如何在编码中用“.xib”文件替换情节提要的主要内容,如果未能解决你的问题,请参考以下文章

如何在多个 .xib 文件之间执行展开转场(不使用情节提要)

将项目从情节提要更改为 xib 文件时出现“此类与键的键值编码不兼容”错误

如何从 xib 文件 uiview 到情节提要 ViewController

在 ios 中从 xib 移动到情节提要

OSX / macOS - 如何将 xib 迁移到情节提要

如何在情节提要场景中嵌入自定义视图 xib?