如何在视图之间创建一个带密码的窗口?

时间:2013-12-26 00:51:08

标签: ios iphone storyboard

我正在使用带有两个视图的故事板。 (“PasswordViewController”和“DestinationViewController”)

在PasswordViewController中,我有一个“密码”字段和“确定”按钮。

问题:我无法正确地将“Segue”从“OK”按钮设置为“DestinationViewController”。它必须在特定密码之后打开,在“密码”字段中输入,否则它不应该做任何事情。怎么做?

3 个答案:

答案 0 :(得分:1)

如果密码验证成功,您需要覆盖shouldPerformSegueWithIdentifier:sender:中的PasswordViewController以返回YES,否则NO

-(BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender {
    if ([identifier isEqualToString:@"open DestinationViewController"]) {
        return [self checkPassword]; // checkPassword method returns YES when the password is right
    }
    return YES;
}

答案 1 :(得分:0)

另一种选择是控制 - 将视图控制器的内容视图中的segue拖动到另一个视图控制器(而不是按钮)。设置segue的标识符,然后编写一个调用performSegueWithIdentifier的按钮IBAction方法: sender:如果密码有效,如果密码无效,则不打开目标视图控制器。

答案 2 :(得分:0)

这两种方法都很简单。这是Duncan建议的代码。

 - (IBAction)okButton:(id)sender
    {    
        if (passwordTextfield.text > spaces) //or whatever condition you would like to put
        {
           UIStoryboard *storyboard = self.storyboard;

           //You need to set below identifier (PasswordView) through your storyboard.
           PasswordViewController *passwordViewController = 
              [storyboard instantiateViewControllerWithIdentifier:@"PasswordView"]; 

          [self.navigationController pushViewController:passwordViewController animated:YES];

        }
    }