如何根据条件的满意度通过按钮点击手动导航到故事板?

时间:2012-12-23 00:17:21

标签: iphone ios

我正在构建一个使用三个UIViewControllers的应用程序。我正在使用导航控制器进行导航。第一个视图控制器(v1)将有两个文本框和一个按钮。在按钮单击,我有一个功能,检查某些条件,如果它满意,然后我移动到第二个视图控制器(v2),否则我想移动到第三个视图控制器(v3)。如何通过代码实现?

最后一件事,我想捕获这些文本框值并在适当的视图控制器中使用它们。这怎么可能?

2 个答案:

答案 0 :(得分:1)

就以编程方式过渡到故事板中的另一个场景而言,一般程序是:

  • 在视图控制器之间定义一个segue(不是按钮,而是视图控制器);

  • 给该segue一个故事板标识符;

  • 为执行验证的按钮创建IBAction,如果成功,则执行

    [self performSegueWithIdentifier:@"myidentifier"];
    

请参阅此answer on stack overflow,其中我详细介绍了此过程中的个人。如果你的情况,这听起来像你正在验证数据,并且可能在给定一系列条件的情况下执行一个segue,在另一系列条件中执行另一个segue。因此,只需为这两个segues提供唯一标识符,然后您就可以在IBAction代码中执行您想要的任何一个。

在将数据传递到下一个场景方面,您可以使用单独的方法prepareForSegue执行此操作,iOS在目标控制器创建之后但在它出现之前调用。在这里,您有机会将参数传递给目标控制器。例如,我假设我捕获了个人的名字和姓氏,并希望将其传递给目标控制器,该目标控制器具有名字和姓氏属性:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"myidentifier"])
    {
        MyDestinationController *controller = segue.destinationViewController;
        controller.firstName = self.labelFirstName.text;
        controller.lastName = self.labelLastName.text;
    }
}

答案 1 :(得分:1)

从iOS 6.0开始,您可以在控制器中实现-shouldPerformSegueWithIdentifier:sender:。比你在iOS 5中所做的要简单得多。