代码之家  ›  专栏  ›  技术社区  ›  RickiG

连接到自定义UIViewController的UIView内置接口生成器

  •  2
  • RickiG  · 技术社区  · 14 年前

    我试着用一种和我习惯的稍有不同的方式来使用IB,但我无法扩展我在处理IB时使用的正常方法。

    我首先在Xcode中创建一个新文件,选择“viewxib”。 然后我打开IB,在视图中添加一些标签等,并将“Files Owner”设置为我现有的ViewController。 我回到IB,在“文件所有者”中将UILabels连接到我的outlets。

    我现在认为在我的viewController中有一个对XIB内部标签的引用。 这并不是我想要的方法,我认为我的viewController没有必要在视图中引用标签。

    我通常在代码中的操作:

    我的ViewController控制一堆完全由代码生成的uiview,它们的实例化者是:

    UIView *customView = [[CustomView alloc] initWithFrame:aFrame];
    [customView setTag:MY_CUSTOM_VIEW];
    [customView setDelegate:self];
    [self.view addSubView:customView];
    [customView release];
    

    [(UILabel*)[[self.view viewWithTag:MY_CUSTOM_VIEW] myLabel] setText@"Hello, World"]; 让我的UIViewController实现customView协议所需的任何方法。

    我应该首先构建一个扩展UIView类的MyCustomView类,让它保存我的所有iboutlet,将MyCustomClass设置为文件所有者,然后如上所示实例化它吗? 可以让视图充当IB视图的viewController吗?我如何将操作传递到我的“真实”viewController?

    我想实现的是在UIViewControllers代码中实例化和布局几个UIView,但是可以在IB中自由地设计一些UIView。

    我希望这是有意义的,谢谢你的帮助:)

    1 回复  |  直到 14 年前
        1
  •  1
  •   Community Neeleshkumar S    7 年前

    可以在Interface Builder中创建所需的任何视图结构,然后使用 UINib 班级。创建UINib对象后,它将从nib加载内容并保留它们。那么,无论你什么时候发 instantiateWithOwner:options:

    有关iOS 4之前的解决方法,请参阅 my recent question and answer