我有通过XIB创建的CustomViewController。
我还通过不同的XIB文件创建了CustomView,该文件是os UIView的子类。
然后我将UIView用于CustomViewController并将其类设置为CustomView。
问题在于:然后我运行这个应用程序我没有看到我在CustomView XIB中创建的CustomView内容。
为什么以及如何解决?
我需要在CustomViewController中使用CustomView,因为我需要设置此视图的布局。
我可以从ViewDidLoad加载此CustomView,但我需要从XIB加载它
UIView *v = [[[NSBundle mainBundle] loadNibNamed:@"TopSegmentedControl" owner:self options:nil] firstObject ];
[self.view addSubview:v];
答案 0 :(得分:2)
我认为你应该考虑更改你的UIView子类,使它继承自UIViewController,并作为子ViewController添加到层次结构中。如果你这样做,那么你可以将interfaceView对象从接口构建器中的检查器托盘添加到外部viewControllers视图中,并且它将在那里添加新的(nib在nib中),以便将所有内容粘贴到..
我认为从最近cocoa和cocoaTouch的变化来看,Apple不希望我们从笔尖加载简单的视图。请注意,“文件所有者”代理顶部现在标记为“ViewController”
答案 1 :(得分:1)
您必须将您包含的代码放入UIViewController的initWithCoder:
方法中。这是从故事板初始化时调用的初始化方法。假设您已连接一个名为myView
- (id)initWithCoder:(NSCoder *)aDecoder {
if ((self = [super initWithCoder:aDecoder])) {
self.myView = [[[NSBundle mainBundle] loadNibNamed:@"TopSegmentedControl" owner:self options:nil] firstObject];
return self;
}
}