首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将ViewController中使用的UIView Nib加载到StoryBoard中

将ViewController中使用的UIView Nib加载到StoryBoard中
EN

Stack Overflow用户
提问于 2014-01-15 15:09:45
回答 3查看 13K关注 0票数 20

我有一个想要在几个视图控制器中使用的UIView,所以我为它创建了视图(.h/.m)和一个nib文件。在Storyboard中,视图作为子视图添加到视图控制器中,但不加载nib中定义的布局。

可以在故事板中加载在视图控制器中使用的UIView的笔尖吗?

EN

Stack Overflow用户

发布于 2014-01-23 21:17:36

如果你问在编辑故事板时在界面生成器中看到你的.xib内容,答案是。但是如果你需要在运行时加载它,也是可行的。

  • .h/.m应包含 UIView 子类.xib文件中的
  • 您需要将文件的所有者(身份检查器->自定义类)设置为E120.h文件中的自定义UIView子类
  • ,并将视图容器从界面生成器连接到此字段(按住Ctrl键并单击.h中的d23属性并将连接拖动到上述属性.h H224
  • 将其他子视图连接到.hE227/code>
  • in .m file您需要放置

代码语言:javascript
复制
- (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文件。

票数 18
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21131122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档