如题:我的跟控制器是是个导航控制器,现在有一个A控制器是我push过来的,我希望这个控制器只能点击导航条左边的返回按钮来pop,而侧边右滑动的手势pop我希望能把它禁用掉。当然其他控制器我希望不还是有这个pop的手势。请问我改如何实现呢?
É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; }
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 ?
Écrire dans le contrôleur A :
Construire de A -> B est plus élégant
Dans la vueDidLoad de B
Puis à l'intérieur de viewDidDisparaître
Tout est écrit en B, n'est-ce pas beaucoup plus élégant ?