我正在使用带有两个视图的故事板。 (“PasswordViewController”和“DestinationViewController”)
在PasswordViewController中,我有一个“密码”字段和“确定”按钮。
问题:我无法正确地将“Segue”从“OK”按钮设置为“DestinationViewController”。它必须在特定密码之后打开,在“密码”字段中输入,否则它不应该做任何事情。怎么做?
答案 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];
}
}