我正在创建一个测验应用,用户可以在第一个屏幕上选择他们想要做的类别。在他们做出选择之后,用户应该按下begin
按钮,它将把它带到那个VC。
我不确定每个类别的视图控制器是否是最有效的方法。如果有人提出任何建议,他们将非常感激。
到目前为止,我已经实现了这个:
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent: (NSInteger)component
{
ObjectiveCViewController *objC;
CViewController *cVC;
switch (row) {
case 0:
objC = [self.storyboard instantiateViewControllerWithIdentifier:@"ObjectiveCViewController"];
[self presentViewController:objC animated:YES completion:nil];
break;
case 1:
cVC = [self.storyboard instantiateViewControllerWithIdentifier:@"cViewController"];
[self presentViewController:cVC animated:YES completion:nil];
break;
}
}
就切换视图控制器而言,其工作完全正常,但只要选择了一个,它就会将用户带到该视图控制器而不是等待按下按钮。
此外,由于按钮只能链接到一个vc,这也是一个可以接受的解决方案吗?
答案 0 :(得分:3)
为每个类别设置一个viewcontroller绝对不是要走的路。你需要创建一个QuestionViewController,它知道如何处理和显示Question对象。您可以根据自己的选择获取正确的问题。
至于你在做什么,这可行:
在类继续类别中有UIViewController *viewController
属性来存储选定的viewcontroller。
- (void)beginButtonPressed:(id)sender {
[self presentViewController:self.viewController animated:YES completion:nil];
}
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent: (NSInteger)component
{
switch (row) {
case 0:
self.viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"ObjectiveCViewController"];
break;
case 1:
self.viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"cViewController"];
break;
}
}