objective-c - 请问如何禁用当前控制器的侧边右滑pop手势?当前VC是push过来的
習慣沉默
習慣沉默 2017-05-02 09:29:05
0
2
560

如题:我的跟控制器是是个导航控制器,现在有一个A控制器是我push过来的,我希望这个控制器只能点击导航条左边的返回按钮来pop,而侧边右滑动的手势pop我希望能把它禁用掉。当然其他控制器我希望不还是有这个pop的手势。请问我改如何实现呢?

習慣沉默
習慣沉默

répondre à tous(2)
小葫芦

É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 ?

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal