【发布时间】:2013-10-21 17:10:38
【问题描述】:
我正在使用最新的 SDK 开发 iOS 5+ 应用程序。
我创建了一个带有自定义 XIB 的自定义 UIView (TopMenuView)。在 Interface Builder 上,我已在此 XIB 上将 UIView 类更改为 TopMenuView。我没有设置任何File's Owner。
在TopMenuView.m 我有:
- (id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if (self)
{
NSLog(@"init with coder: %d", counter);
counter++;
// Add custom XIB
NSArray *topMenuView = [[NSBundle mainBundle] loadNibNamed:@"TopMenuView"
owner:nil
options:nil];
UIView *nv = [topMenuView objectAtIndex:0];
[self addSubview:nv];
}
return self;
}
使用 Interface Builder 我已将 UIView 添加到 UIViewController 并将此 UIView 类更改为 TopMenuView。
但是,当我运行应用程序时,我收到此日志消息 4251 次:
2013-10-13 20:49:34.078 MyProject[470:c07] init with coder: 0
然后,我在这里收到EXC_BAD_ACCESS:
NSArray *topMenuView = [[NSBundle mainBundle] loadNibNamed:@"TopMenuView"
owner:nil
options:nil];
【问题讨论】:
-
您将 nv 添加为子视图,但您的主视图在哪里?您没有向文件所有者声明任何视图。您必须将一个视图附加到文件的所有者。
标签: ios objective-c uiview