可能重复:
iPhone App Dev - Loading View From View Controller
我有一个带有工具栏的根视图控制器,其中有一个按钮。当根视图控制器加载时,我希望它在工具栏下面加载一个子视图:
//assigns JSON to question objects
-(void) setQuestions {
questionArray = [[NSMutableArray alloc] init];
for (NSDictionary *q in self.questions) {
/* Create our Question object and populate it */
QuestionViewController *question = [[QuestionViewController alloc]init];
[question setQuestionId:[q objectForKey:@"questionId"] withTitle:[q objectForKey:@"question"] number:[q objectForKey:@"questionNumber"] section:[q objectForKey:@"sectionId"]];
/* Add it to our question (mutable) array */
[questionArray addObject:question];
[question release];
}
}
-(void) startQuestionnaire {
currQ = [questionArray objectAtIndex:0];
[self.view insertSubview:currQ.view atIndex:0];
[currQ release];
}我使用startQuestionnaire从questionArray加载视图控制器,其中包含一个加载的QuestionViewController objects...When,我单击加载的视图中的滑块,必须将控制交给子视图或其他什么的程序crashes...Do ?当我在startQuestionnaire中删除代码时,程序不会崩溃。
发布于 2011-07-15 02:32:35
虽然很难说没有看到其余的代码,但看起来您的问题就在实例化/引用对象的方法中。
如果我是你,为了简化事情,我会采取稍微不同的方法。
首先,试着使用“属性”和“合成”,并习惯于用“自我”来指象牙人。保留计数&内存管理问题通常是崩溃的原因,您可以通过更正式地使用ivars来清理问题。以下是一些阅读:http://www.optictheory.com/iphone-dev/2010/02/objective-c-primer-part-3-property-and-synthesize/
第二,在您准备好将其添加到根QuestionViewController (即根ViewController )之前,我将不创建它。在startQuestionnaire内部)。您可以使用自定义init函数将JSON数据传递到它。这样,您就可以确保周围没有其他QuestionViewController实例,这些实例可能会导致复杂的情况,并且在不使用它们时占用内存。
至于滑块问题本身,很难说没有看到实际的错误,但希望这会有所帮助。
祝你好运
https://stackoverflow.com/questions/6700987
复制相似问题