我正在尝试从UIViewController
加载xib文件。
在.h
UIView *myView;
@property(nonatomic, retain) IBOutlet UIView *myView;
在我的.m
@synthesize myView;
if([[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self options:nil]) {
[self.myView setFrame:CGRectMake(0, 0, 320, 480)];
[[UIApplication sharedApplication].keyWindow addSubview:self.myView];
}
从同一UIViewController
我加载并删除xib文件。我在上面的例子中使用了相同的代码,并且它有效。它的一个特定的xib文件似乎有问题。我检查过,窗口是否为零。但事实并非如此。无法弄清问题是什么。
编辑:self
是否可能过早发布
在加载此xib文件之前,我使用相同的代码加载另一个xib文件。这很好。我试图在此视图上方加载当前的xib文件。
答案 0 :(得分:1)
也许确保您的xib文件已添加到目标的“复制包资源”部分,在“构建阶段”部分中。 (并仔细检查它是否已添加到导航菜单资源中)。
答案 1 :(得分:1)
试试这个:
if([[[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self options:nil] objectAtIndex:0]) {
[self.myView setFrame:CGRectMake(0, 0, 320, 480)];
[[UIApplication sharedApplication].keyWindow addSubview:self.myView];
}
我认为问题可能是“loadNibNamed”返回顶级对象的NSArray。
答案 2 :(得分:0)
如果您要将此视图加载到另一个UIView
上,并且正确加载UIView
,则可以将此视图添加为UIView
的子视图。