代码之家  ›  专栏  ›  技术社区  ›  M. Ryan

使用接口生成器嵌套自定义类/xib

  •  9
  • M. Ryan  · 技术社区  · 16 年前

    我会尽量缩短时间。

    我编写了一个自定义类,用几个iboutlet属性扩展uiview,它有一个与之相关联的xib,这些iboutlet链接到这里。

    然后我想取这个类,将它嵌入到其他XIB(例如,一个表单元)中,然后让它工作。

    似乎当我将该自定义类嵌入到新的XIB中时,它无法识别与之关联的原始XIB,因此它要求我将iboutlets重置为新XIB上的接口元素。这是跛脚的。

    有人知道我在做什么,并且有一个好的方法吗?

    2 回复  |  直到 15 年前
        1
  •  8
  •   Eric    15 年前

    以下是我如何做到这一点的方法:

    在接口生成器中
    打开你的外笔尖,然后这样做:

    • 添加一个uiview来定义希望内部笔尖显示的空间。
    • 从库中添加一个uiviewcontroller对象,将其nib name属性设置为内部nib文件的名称(不带扩展名)。
    • 为外部视图控制器中的这两个项目创建iOutlet,并将它们连接起来。(我称之为 内视图 内视图控制器 )
    • 不要将内部视图控制器中定义的任何IBoutlets连接到外部NIB文件中的任何内容,只需保持它们未连接。

    在Xcode中
    在外视图控制器中 可视负载 方法,添加这两行:

    [self.innerView addSubview:self.innerViewController.view];
    self.innerViewController.view.frame = CGRectMake(0, 0, self.innerView.frame.size.width, self.innerView.frame.size.height);
    

    如果您的外笔尖是自定义的uitableviewcell,请将这些行放入 苏醒 方法代替。

    构建和运行!

        2
  •  1
  •   Ben S    16 年前

    我假设您只是将uiviews放在一个NIB中,以供纯代码的uiviewController使用。苹果称之为 detached nib file .

    请按照我链接到的指南了解如何使其正常工作的详细信息和示例。

    关于在Interface Builder中将视图嵌入到另一个视图中,您需要 add a UIView element from the Library 进入父视图,以及 set its class in the Inspector . 一旦设置了嵌入视图的类,IBoutlet就应该可见。