iOS - performSegueWithIdentifier不工作?

时间:2012-07-11 06:00:22

标签: iphone ios uinavigationcontroller uistoryboardsegue

我的应用中只有两个ViewControllers

故事板设置: -

enter image description here

我有一个push segue从我的ViewController直接连接到MainTableViewController。我希望我的应用程序在用户输入正确的密码后立即重定向到主视图。

这是我的代码: -

- (IBAction)checkInput
{

    NSMutableString *aString = [NSMutableString stringWithFormat:firstDigit.text];
    [aString appendFormat:secondDigit.text];
    [aString appendFormat:thirdDigit.text];
    [aString appendFormat:fourthDigit.text];
    if([aString isEqualToString:@"1111"])
    {
        result.text = @"Right Password";
        //UIStoryboard *sb = [UIStoryboard storyboardWithName:@"MainStoryBoard" bundle:nil];
        //UITableViewController *tvc = [self.storyboard instantiateViewControllerWithIdentifier:@"mainTableViewController"];
        //[self.navigationController pushViewController:tvc animated:YES];
        //[self removeFromParentViewController];
        [self performSegueWithIdentifier:@"mainSegue" sender:self];
    }
    else {
        result.text = @"Wrong Password";
    }
    NSLog(@"%@", aString);
}
一旦用户输入最后一位数字,就会调用

checkInput。我在第四个TextField的Editing did End上调用它。

任何帮助都会非常感激。 感谢

2 个答案:

答案 0 :(得分:4)

诀窍是这些segue仅在您的视图控制器“嵌入”UINavigation控制器时才有效。选择你的第一个VC,然后选择(从顶部菜单)编辑器>嵌入>导航控制器。

它应该自动将自己设置为初始VC,但请仔细检查。

请注意,在此图片中我将展示如何,但它已经完成,因此您可以看到它自动将我的主VC连接到Nav Controller。 Embed in Navigation Controller

答案 1 :(得分:2)

另一个想法是将您的主视图嵌入导航视图控制器并将其用作初始vc。然后在主要vc顶部需要时提供密码vc modaly。这种方式的另一个优点是你现在可以使用popToViewController:animated:目前无法以这种方式使用。

initial vc ----> main vc
                   |
                   |
                 modaly
                   |
                   |
              pass code vc