【问题标题】:Picker view with View controller带有视图控制器的选取器视图
【发布时间】:2014-09-23 00:57:17
【问题描述】:

假设我有 3 个视图控制器,是否可以使用选取器视图来选择视图控制器。如果是这样,有人可以指出我正确的方向。

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView { 返回 1; } - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component { return names.count; } - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component { return [names objectAtIndex:row]; } - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component { switch (row) { case 0: break; default: break; } }

我正在尝试使用选择器视图来选择称为 TfaViewController 的视图控制器,我是否在正确的轨道上,有人可以帮助我编写在视图控制器之间切换的代码。 抱歉,我的代码设置不正确。

【问题讨论】:

  • 你试过什么?您知道如何从选择器视图中获取用户的选择吗?你知道如何去一个新的控制器吗?把问题分解成各个部分,看看你是否能取得一些进展,如果遇到困难,再提出一个更具体的问题。
  • 感谢您的回复@rdelmar,我用选择器视图做了一些程序,但从未使用选择器视图在视图控制器之间进行选择,我不确定这是否可能,所以我不知道如何使用选择器视图以转到新的视图控制器。我已经在这个网站和谷歌上搜索过,但我没有找到任何可以让我继续前进的东西。
  • 您可以只使用 switch 语句(在选择器的选定行上切换),并在 case 语句中推送、呈现或调用 segue。
  • 我已经编辑了我的问题@rdelmar,你有没有机会帮我解决这个问题。
  • 你想如何在控制器之间切换?您希望将新的推送到导航堆栈,还是以模态方式呈现?你知道如何做这两件事吗?你在为你的控制器使用故事板吗?

标签: ios iphone xcode


【解决方案1】:

你只需要实例化你想去的控制器并展示它,

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    TfaViewcontroller *tfaVC;
    switch (row) {
        case 0: 
            tfaVC = [self.storyboard instantiateViewControllerWithIdentifier:@"TfaViewController"];
            [self presentViewController:tfaVC animated:YES completion:nil];
            break;
        case 1:
            // do another one here

        default:
            break;
    }
}

您需要确保在情节提要中为控制器提供相同的标识符,就像您在 instantiateViewControllerWithIdentifier: 中传递的那样。

【讨论】:

  • 我在这方面遇到了错误,我在此处和 Storyboard ID 中具有相同的名称。还有什么我需要做的。 TfaViewcontroller *tfaVC = [self.storyboard instantiateViewControllerWithIdentifier:@"TfaViewController"]; [self presentViewController:tfaVC 动画:YES 完成:nil];
  • 未知类型名称'TfaViewController';你的意思是'UIViewController'和使用未声明的标识符'tfaVC'
  • @Sleeperinn,您是否将 TfaViewController.h 文件导入到您拥有此代码的类中?
  • 是的,并在我正在调用的视图上设置 Storyboard ID
  • @Sleeperinn,我的代码中有语法错误。您需要在 switch 语句之外声明 tfaVC。我已经更新了答案以显示正确的代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-24
  • 2014-06-11
  • 1970-01-01
  • 2017-07-03
  • 2013-06-18
  • 2023-03-29
相关资源
最近更新 更多