我有一个想要在几个视图控制器中使用的UIView,所以我为它创建了视图(.h/.m)和一个nib文件。在Storyboard中,视图作为子视图添加到视图控制器中,但不加载nib中定义的布局。
可以在故事板中加载在视图控制器中使用的UIView的笔尖吗?
发布于 2014-01-23 21:17:36
如果你问在编辑故事板时在界面生成器中看到你的.xib内容,答案是。但是如果你需要在运行时加载它,也是可行的。
E227/code> in .m file您需要放置
- (void)awakeFromNib {
NSString* nibName = @"Place here your Nib name without extension";
if ([[NSBundle mainBundle] loadNibNamed:nibName owner:self options:nil]) {
[self.view setFrame:[self bounds]];
[self addSubview:self.view];
}
}
就这样。将视图移动到故事板场景,将自定义类更改为FooView,在视图控制器代码中导入.h,然后根据需要使用IBOutlets。
拥有愉快的编码
编辑
我想指出的是,根据awakeFromNib documentation的说法,我们应该避免在awakeFromNib中使用这样的代码。
建议您在文件的所有者对象及其关联的nib文件之间保持一对一的对应关系。使用同一文件的所有者对象加载两个nib文件会导致该对象的awakeFromNib方法被调用两次,这可能会导致某些数据结构以不必要的方式重新初始化。还建议您避免从awakeFromNib方法实现中加载其他nib文件。
https://stackoverflow.com/questions/21131122
复制相似问题