我需要创建几个类似的 View
以一种简单的方式,我在 xib 中创建了一些 View (每个全屏)
我有一个 View Controller 来使用这个 xib 的 View ,代码如下:
NSArray* views = [[NSBundle mainBundle] loadNibNamed"MyXibName" owner:nil options:nil];
[self.view addSubview:[views objectAtIndex:aIndex]];
此时, View 显示正常。
现在,这些 View 中有一些按钮,所以我为每个 View 连接了一个 socket
坏事发生了
应用程序因 而崩溃
uncaught exception 'NSUnknownKeyException', reason: '[<NSObject 0x969db50> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key
分析:
虽然我的 xib 文件的“文件所有者”已经设置,但是 xib 和唯一的 View Controller 之间没有任何联系。
如何获得 View 按钮的指针?
Best Answer-推荐答案 strong>
你可以这样做:
NSNib* aNib = [[NSNib alloc] initWithNibNamed"MyGreatNib" bundle:nil];
NSArray* topLevelObjs = nil;
for (SomeClass *obj in myOwnerObjects) {
topLevelObjs = nil;
if (![aNib instantiateNibWithOwnerbj topLevelObjects:&topLevelObjs])
{
NSLog(@"Warning! Could not load nib file.\n");
return;
}
for (id topLevelObj in topLevelObjs) {
if ([topLevelObj isKindOfClass:[NSView class]]) {
NSView *otView = (NSView *)topLevelObj;
// set frame...
[self addSubviewtView];
}
}
}
关于objective-c - 在没有 View Controller 的情况下使用 xib,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/12157689/
|