Maison > Questions et réponses > le corps du texte
Par exemple : mon contrôleur au talon est un contrôleur de navigation, et maintenant il y a un contrôleur A sur lequel j'ai poussé. J'espère que ce contrôleur ne pourra apparaître qu'en cliquant sur le bouton de retour sur le côté gauche de la barre de navigation et en faisant glisser. juste sur le côté. J'espère désactiver le geste pop. Bien sûr, j’espère que les autres contrôleurs n’auront plus ce geste pop. S'il vous plaît dites-moi comment mettre en œuvre ce changement ?
高洛峰2017-05-02 09:31:05
Écrire dans le contrôleur A :
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
self.navigationController.interactivePopGestureRecognizer.delegate = self;
}
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
self.navigationController.interactivePopGestureRecognizer.delegate = nil;
}
// 给该控制器添加协议 <UIGestureRecognizerDelegate>
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{
return gestureRecognizer != self.navigationController.interactivePopGestureRecognizer;
}
伊谢尔伦2017-05-02 09:31:05
Construire de A -> B est plus élégant
Dans la vueDidLoad de B
self.navigationController.interactivePopGestureRecognizer.delegate = self;
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated {
[super pushViewController:viewController animated:animated];
self.interactivePopGestureRecognizer.enabled = NO;
}
Puis à l'intérieur de viewDidDisparaître
self.navigationController.interactivePopGestureRecognizer.enabled = YES;
Tout est écrit en B, n'est-ce pas beaucoup plus élégant ?