为什么这段代码不会分配子视图?

时间:2012-04-04 19:28:32

标签: objective-c xcode4

这是我的代码,我试图创建一个子视图......我正在使用带有StoryBoards的XCode4。该应用程序崩溃在第二行,它使用EXC_BAD_ACCESS分配subView。 vFrame包含有效内容。这有什么问题? (我在故事板上使用XCode4,顺便说一下。)

- (void)viewDidLoad
{
    [super viewDidLoad];

    CGRect vFrame = CGRectMake(60,100,200,200);
    subView = [[UIView alloc] initWithFrame:vFrame];
    subView.backgroundColor = [UIColor redColor];
    [self.view addSubview: subView];
}

更新:subView的定义:

@interface PreferencesViewController : UIViewController  {

    UIView *subView;
}

@property (nonatomic, retain)  UIView *subView;

@end

3 个答案:

答案 0 :(得分:1)

真的应该有效。您的视图控制器(PreferencesViewController)是否已正确分配并初始化?你对你的子视图进行了@synthesize吗?

虽然没关系,但你可以尝试使用浮点数作为CGRect(在每个结尾添加一个.0)。

答案 1 :(得分:1)

尝试将子视图实例化代码移动到主视图的方法viewWillAppear。这保证了所有内容都已初始化。

答案 2 :(得分:0)

问题是UIViewController被吓坏了......不知道怎么回事,但一旦被取代,它就像一个冠军!谢谢大家的回复...