Question

Je veux savoir comment annuler une transition dans un programme lorsqu'une condition est fausse ?

Ci-dessous mon extrait de code :

if ([segue.identifier isEqualToString:@"Information Segue"])
{   
    NSFetchRequest *request = [[NSFetchRequest alloc] init];
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Login" inManagedObjectContext:self.managedObjectContext];
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@" ANY userid==%@ AND password==%@",_loginTextfield.text, _passwordTextField.text];
    [request setEntity:entity];
    [request setPredicate:predicate];
    NSError *anyError=Nil;
    NSArray *fetchedObjects = [self.managedObjectContext executeFetchRequest:request error:&anyError];
    if ([fetchedObjects count] )
    {
        useridentered = _loginTextfield.text;
        passwordentered = _passwordTextField.text;

        InformationTVC *informationTVC = segue.destinationViewController;
        informationTVC.managedObjectContext = self.managedObjectContext;             
    }
    else
    {
       /*  want to put my cancel the segue and remain in the login view */ 
    }
}

Si quelqu'un pouvait me guider, ce serait d'une grande aide.

Était-ce utile?

La solution

La référence de la SEGUE: https://developer.apple.com/library/ios/documentation/uikit/reference/uistoryboardsegue_class/reference/reference.html N'a pas de méthode publique qui vous permettrait d'annuler la Segue.

Il me semble que cela serait plus facile de décider de faire la SEGUE ou non, sur la base des conditions, avant que la SEGUE ne se produise, mais c'est à vous de décider.

Autres conseils

Vérifiez ce fil: Segue conditionnelle effectuée sur Tap sur UitailViewCell

Fondamentalement au lieu de relier votre Segue directement sur un bouton, placez-le entre les contrôleurs d'affichage et relierez le bouton sur une ibaction qui appellera de manière conditionnelle le fonctionnement de la fonctionWithIdentifier

Il existe une autre option ici : https://stackoverflow.com/a/42161944/4791032

Vous pouvez simplement l'enregistrer func tableView(_ tableView: UITableView, willSelectRowAt indexPath: IndexPath)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top