如果验证了数据,则移至目标控制器

时间:2014-02-25 06:52:36

标签: ios storyboard

很抱歉,如果之前有人问这个问题。如果登录凭据有效,我希望我的loginSegue(推送)打开目标控制器。

我的第一个控制器和下一个控制器通过push segue(登录segue)连接

第一个控制器有登录按钮,在其按下事件我调用performSegueWithIdentifier

我这样做是为了

- (IBAction)loginMe:(id)sender { 
    [self performSegueWithIdentifier:@"loginSegue" sender:self];
}


- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"loginSegue"])
    {
        if ([[nameTextField text] isEqualToString: @"admin"] && [[passwdTextField text] isEqualToString:@"1234"]) {

           // destinationVC *vc= [[destinationVC alloc] init];
          // [segue destinationViewController] =vc;
           // destinationVC *vc = [segue destinationViewController];

         // how i set destinationVC as my destination controller ?

            NSLog(@"Credentials Match");
        }else{
            NSLog(@"Credentials dont Match");
        }


}

}

2 个答案:

答案 0 :(得分:0)

这个问题与技术性无关,而与逻辑有关。

一旦调用“performSegueWithIdentifier”,就会调用“prepareForSegue”。因此,您必须在调用“performSegueWithIdentifier”

之前检查您的验证
- (IBAction)loginMe:(id)sender { 
if([txtEmailField.text isEqualToString: @"username@domainname.com"] && [txtPassword.text isEqualToString: @"password"])
{
  [self performSegueWithIdentifier:@"loginSegue" sender:self];
}
else
{
   [[UIAlertView alloc] initWithTitle:@"" message:@"Please enter valid e-mail address and password" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
}

答案 1 :(得分:0)

首先,您需要将故事板segue从 Push Segue更改为自定义segue

要做到这一点,你需要删除你现有的推送segue并创建一个新的,从一个viewController拖动到另一个(你不需要从按钮拖动),之后你需要在loginMe函数内用performSegueWithIdentifier手动调用segue。

我希望它有所帮助。