2012-04-04 74 views
2

这是我的代码,我正在尝试创建一个子视图...我在StoryBoards上使用XCode4。该应用程序正在崩溃的第二行,它与EXC_BAD_ACCESS分配子视图。 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]; 
} 

更新:定义子视图:

@interface PreferencesViewController : UIViewController { 

    UIView *subView; 
} 

@property (nonatomic, retain) UIView *subView; 

@end 
+0

什么是subView?它是在什么地方定义的? – 2012-04-04 19:41:03

+0

已更新的问题... – SpokaneDude 2012-04-04 19:42:23

+0

我创建了一个包含故事板(Xcode 4.2,SDK 5.0)的测试项目并粘贴到您的代码中:没问题。尝试在Objective-C异常处设置断点,或捕获异常,并查看堆栈符号的外观。 – 2012-04-04 20:20:02

回答

0

问题是UIViewController被弄得......不知道如何,但一旦它被替换,它就像一个冠军!谢谢大家的回复...

1

这确实应该工作。您的视图控制器(PreferencesViewController)是否正确地分配和初始化?你在合成你的子视图吗?

虽然不应该出现问题,但您可以尝试使用CGRect的浮点数(在每个数的末尾添加一个.0)。

+0

嗨亚当...是的,subView是@ synthesiz'ed ...浮动没有什么区别...它是XCode4与故事板?而且我知道它已经进入了PreferencesViewController,因为这就是代码所在的地方......我不知道它是否是一个XCode4错误? – SpokaneDude 2012-04-04 20:11:31

+0

ADam ...去昨天Q(http://stackoverflow.com/questions/10015985/how-to-move-this-colorpicker-from-iphone-to-a-portion-of-ipad-scene):和看我最近的评论... – SpokaneDude 2012-04-04 20:12:23

1

尝试将您的子视图实例化代码移动到您的主视图的方法viewWillAppear。这保证了一切都已经初始化。