Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 以nib作为子视图的自定义视图不';我好像没在装货_Iphone_Objective C_Interface Builder_Views_Nib - Fatal编程技术网

Iphone 以nib作为子视图的自定义视图不';我好像没在装货

Iphone 以nib作为子视图的自定义视图不';我好像没在装货,iphone,objective-c,interface-builder,views,nib,Iphone,Objective C,Interface Builder,Views,Nib,我创建了一个自定义视图,从nib加载其内容,如下所示: /* PricingDataView.h */ #import <UIKit/UIKIt.h> @interface PricingDataView : UIView { UIView *contentView; } @property (nonatomic, retain) IBOutlet UIView *contentView; @end /* PricingDataView.m */ #import "Pri

我创建了一个自定义视图,从nib加载其内容,如下所示:

/* PricingDataView.h */

#import <UIKit/UIKIt.h>

@interface PricingDataView : UIView {
  UIView *contentView;
}
@property (nonatomic, retain) IBOutlet UIView *contentView;
@end

/* PricingDataView.m */

#import "PricingDataView.h"

@implementation PricingDataView
@synthesize contentView;

- (id)initWithFrame:(CGRect)frame {
  if ((self = [super initWithFrame:frame])) {
    [[NSBundle mainBundle] loadNibNamed:@"PricingDataView" owner:self options:nil];
    [contentView setFrame:frame];
    [self addSubview:contentView];
  }
  return self;
}

/* ... */
/*PricingDataView.h*/
#进口
@接口PricingDataView:UIView{
UIView*contentView;
}
@属性(非原子,保留)IBUIView*contentView;
@结束
/*PricingDataView.m*/
#导入“PricingDataView.h”
@实现PricingDataView
@综合内容视图;
-(id)initWithFrame:(CGRect)帧{
if((self=[super initWithFrame:frame])){
[[NSBundle mainBundle]loadNibNamed:@“PricingDataView”所有者:自选项:nil];
[contentView setFrame:frame];
[自添加子视图:contentView];
}
回归自我;
}
/* ... */
在nib文件中,我将
PricingDataView
设置为文件所有者的类型,并连接IB中的
contentView
插座。我将一个常规的
UIView
从接口库放置到显示给用户的全尺寸视图上,然后将其类名更改为
PricingDataView
。所有这些都会生成,但在运行时,不会在自定义视图所在的位置渲染任何内容


我在
PricingDataView.initWithFrame
中放置了断点,但它们没有命中,因此我知道缺少了一些会导致视图初始化的内容。我想知道的是,在从nibs加载其他视图的过程中,所有的初始化都是为我进行的,但这次不是。为什么?

您确定其他视图没有使用
UIViewController
?以下是来自
initWithFrame:
UIView
的引用:

如果使用Interface Builder进行设计 在您的接口中,此方法不可用 在查看对象时调用 随后从nib文件加载。 nib文件中的对象是 重新组合,然后初始化 使用他们的initWithCoder:方法, 它修改了 查看以匹配存储在中的属性 nib文件。有关详细信息 关于如何从nib加载视图 文件,请参阅


在运行时在Interface Builder中添加文件时,它会调用
-(id)initWithCoder:(NSCoder*)aDecoder
而不是initWithFrame。

只需撤消添加到
UIView
的视图的类名(
PricingDataView
)。在这种情况下,将调用
initWithFrame
:方法

以前在循环中调用了awakeFromNib。由于您的
customView
和您通过
Nib
添加的
视图
作为
子视图
属于相同的类类型