无法从UIViewController加载xib文件

时间:2012-03-07 16:50:08

标签: iphone ios uiview uiviewcontroller

我正在尝试从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文件。

3 个答案:

答案 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的子视图。