objective-c - 請問如何停用目前控制器的側邊右滑pop手勢?當前VC是push過來的
習慣沉默
習慣沉默 2017-05-02 09:29:05
0
2
576

如題:我的跟控制器是是個導航控制器,現在有一個A控制器是我push過來的,我希望這個控制器只能點擊導航條左邊的返回按鈕來pop,而側邊右滑動的手勢pop我希望能把它禁用掉。當然其他控制器我希望不還是有這個pop的手勢。請問我改如何實現呢?

習慣沉默
習慣沉默

全部回覆(2)
小葫芦

在 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;
}
伊谢尔伦

建設從 A -> B 優雅一點的話

在 B 的 viewDidLoad 裡面

self.navigationController.interactivePopGestureRecognizer.delegate = self;
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated {
    [super pushViewController:viewController animated:animated];
    self.interactivePopGestureRecognizer.enabled = NO;
}

然後在 viewDidDisappear 裡面

self.navigationController.interactivePopGestureRecognizer.enabled = YES;

都寫在 B 裡面,是不是優雅了許多

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板