如何从 iOS 中的 NIB 加载 NIB
How to load a NIB from NIB in iOS
我通过 XIB 创建了 CustomViewController。
我还通过子 class os UIView 的不同 XIB 文件创建了 CustomView。
然后我将 UIView 绑定到 CustomViewController 并将其 class 设置为 CustomView。
问题在这里:然后我 运行 这个应用程序我没有看到我在 CustomView XIB 中创建的 CustomView 的内容。
为什么以及如何解决?
我需要在 CustomViewController 中包含 CustomView,因为我需要设置此视图的布局。
我可以从 ViewDidLoad 加载这个 CustomView,但我需要从 XIB 加载它
UIView *v = [[[NSBundle mainBundle] loadNibNamed:@"TopSegmentedControl" owner:self options:nil] firstObject ];
[self.view addSubview:v];
您必须将包含在此处的代码放入 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;
}
}
我认为您应该考虑更改您的 UIView 子类,使其继承自 UIViewController,并作为子类 ViewController 添加到层次结构中。如果你这样做,那么你可以将 containerView 对象从界面构建器中的检查器托盘添加到外部 viewControllers 视图中,它会在那里添加新的(笔尖内的笔尖)供你将所有内容粘贴到..
我认为从 cocoa 和 cocoaTouch 最近的变化来看,Apple 不希望我们从 nibs 加载简单的视图。请注意顶部的 'files owner' 代理现在标记为 'ViewController'
我通过 XIB 创建了 CustomViewController。
我还通过子 class os UIView 的不同 XIB 文件创建了 CustomView。
然后我将 UIView 绑定到 CustomViewController 并将其 class 设置为 CustomView。
问题在这里:然后我 运行 这个应用程序我没有看到我在 CustomView XIB 中创建的 CustomView 的内容。
为什么以及如何解决?
我需要在 CustomViewController 中包含 CustomView,因为我需要设置此视图的布局。
我可以从 ViewDidLoad 加载这个 CustomView,但我需要从 XIB 加载它
UIView *v = [[[NSBundle mainBundle] loadNibNamed:@"TopSegmentedControl" owner:self options:nil] firstObject ];
[self.view addSubview:v];
您必须将包含在此处的代码放入 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;
}
}
我认为您应该考虑更改您的 UIView 子类,使其继承自 UIViewController,并作为子类 ViewController 添加到层次结构中。如果你这样做,那么你可以将 containerView 对象从界面构建器中的检查器托盘添加到外部 viewControllers 视图中,它会在那里添加新的(笔尖内的笔尖)供你将所有内容粘贴到..
我认为从 cocoa 和 cocoaTouch 最近的变化来看,Apple 不希望我们从 nibs 加载简单的视图。请注意顶部的 'files owner' 代理现在标记为 'ViewController'