2

세 개의 탭이있는 TabBarController이 있습니다. 첫 번째 및 마지막 탭은 내비게이션 컨트롤러를 사용하도록 설정 한 후 내비게이션 컨트롤러를 사용하도록 설정 한 것입니다. 중간 탭은 표준 인 viewController입니다. 기본적으로 스 와이프 백이 사용 설정되지 않은 것 같습니다. 나는이 두 버튼에 뒤로 버튼을 사용하고 있기 때문이라고 생각합니다. navigationControllers. 나는 두 탐색 컨트롤러의 루트 뷰 컨트롤러에서 다음 코드를 활성화하는 것을 시도했다 :탭 막대 컨트롤러의 내비게이션 컨트롤러에서 스 와이프를 사용 중지하고 사용 설정하는 올바른 방법

self.navigationController?.interactivePopGestureRecognizer?.delegate = self 

UIGestureRecognizerDelegate에 부합 :

viewDidLoad에서

func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool { 

     if (self.navigationController?.viewControllers.count)! > 1 { 
      return true 
     } 

     return false 
    } 

슬쩍 뒤로 보기 컨트롤러 중 하나가 다른 UI를 맨 위에 푸시하고 앱이 모두 멈 추면 때때로 작동합니다. Swift에서 다시 스 와이프를 사용하거나 사용하지 않도록 설정하는 올바른 방법은 무엇입니까? 이를 달성하기

답변

1

두 단계 :

navigationController?.interactivePopGestureRecognizer?.isEnabled = true 
:

위로 슬쩍 수 :

  1. 는 다음을 추가
  2. viewDidLoad에서 클래스 상속에 UIGestureRecognizerDelegate 추가

    다시 슬쩍 해제사람 :

    navigationController?.interactivePopGestureRecognizer?.isEnabled = false 
    
+0

이 방법이 작동하지 않았다 – iosMentalist