我有一个调查问卷视图控制器类。这会实例化几个问题视图控制器(每个问题视图控制器都有一个关联的视图)。
我如何获取调查问卷来加载与其问题视图控制器关联的这些问题视图......
EDIT:
-(void) setQuestions{
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];
}
}
上述方法在 QuestionnaireViewController 的 viewDidLoad 方法中调用,并且是创建 QuestionViewController 的地方。每个视图都有一个带有下一个按钮的关联视图。
从您的问题来看,当您说“如何获取调查问卷来加载这些问题视图”时,您的意思并不清楚。
您只是问如何在选择问题时显示 QuestionViewController 吗?如果是这样,这听起来像是一个基于导航的应用程序。您通常会使用 UINavigationController 作为应用程序委托中的顶级视图控制器,将 QuestionaireViewController 设置为 UINavigationController 的 rootViewController。然后,当用户在 QuestionaireViewController 中选择一个问题时,您可以使用以下方法显示其控制器:
[self.navigationController pushViewController:questionViewController animated:YES];
相反,如果您问如何将这些 QuestionViewController 的视图显示为 QuestionaireViewController 的子视图,简短的回答是不要这样做(至少在 iOS 4.x 下不这样做)。 Apple 的视图控制器框架不支持使用嵌套视图控制器同时管理多个子视图。文档指出,每个视图控制器应对应 iPhone 上的一个全屏视图。 iPad 对分割视图和弹出窗口等内容稍微更改了这些规则,但它仍然不适合让您在自己的自定义视图控制器中嵌套视图控制器。
(事实上,从技术上讲,使用多个视图控制器来管理单个屏幕上的不同子视图是可行的,但是正确地这样做需要了解视图控制器框架的设计方式的专业知识,以便您可以正确地委托所有各种 UIViewController 方法和属性,例如viewWillAppear:、navigationController、tabBarController 等。通常最好遵循 Apple 的建议并在每个屏幕上使用一个视图控制器。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)