J'ai un UIView->UICollectionView->UICollectionViewCell
. J'essaie de revenir en arrière par programme, mais aucun de ces travaux. Le code a appelé. J'utilise StoryBoard.
- (void) goBack:(NSNotification *) notification {
// [self.navigationController popViewControllerAnimated:YES];
// [self dismissViewControllerAnimated:YES completion:nil];
[self.navigationController popToRootViewControllerAnimated:YES];
}
Vous devez utiliser:
[self.navigationController popToRootViewControllerAnimated:YES];
Cela vous ramènera au contrôleur de vue racine.
Si vous souhaitez revenir au contrôleur de vue précédent, vous devez implémenter:
[self.navigationController popViewControllerAnimated:YES];
En utilisant la ligne ci-dessous, nous pouvons aller au contrôleur de vue parent
[self.navigationController popViewControllerAnimated:YES];
En utilisant la ligne ci-dessous, nous pouvons passer au contrôleur de vue principal/racine
[self.navigationController popToRootViewControllerAnimated:YES];
En utilisant la ligne ci-dessous, nous pouvons passer à n'importe quel contrôleur de vue
[self.navigationController popToViewController:viewControllerObject animated:YES];
Que diriez-vous...
[self.navigationController dismissViewControllerAnimated:YES completion:NULL];
En supposant que vous êtes actuellement dans un contrôleur basé sur la navigation et que vous vouliez revenir au contrôleur précédent avant d'entrer dans un contrôleur basé sur la navigation.
Solutions rapides pour un copier-coller facile:
navigationController?.popViewControllerAnimated(true)
Avec Swift3,
@IBAction func back(_ sender: UIButton) {
self.dismiss(animated: true, completion: nil)
}
Swift 4.1:
navigationController.popViewController(animated: true)
Essayez-le ....
#import "bookdescriViewController.h" // import here your class name
- (IBAction)backButton:(id)sender
{
bookdescriViewController *previosVC = [[bookdescriViewController alloc]init];
[self.navigationController popViewControllerAnimated:YES]; // go to previous view controller
[self.navigationController popToRootViewControllerAnimated:YES]; // go to root view controller
[self.navigationController popToViewController:previosVC animated:YES]; // go to any view controller
[previosVC release];
}
- (void) goBack:(NSNotification *) notification
{
if(!self.YOrView.isHidden)
self.YOrView.hidden = YES;
}
Revenez au contrôleur de vue parent et libérez le contrôleur de vue actuel ex:
- (void)applicationDidEnterBackground:(NSNotification *)notification
{
NSInteger numberOfViewControllers = self.navigationController.viewControllers.count;
UIViewController *vc = [self.navigationController.viewControllers objectAtIndex:numberOfViewControllers - 2];
[self.navigationController popToViewController:vc animated:NO];
}
ou un autre contrôleur de vue