2017-11-24 15 views
0

화면이 두 번 눌려지는 문제가 있습니다. 문제는 그 일을하는 pushViewController를 모른다는 것입니다. 그래서 나는 그 함수를 호출하는 이전 호출 스택이 무엇인지 알 수 있도록 navigationController.pushViewController() 함수에 중단 점을 추가하려고합니다. pushViewController 내부를 볼 필요가 없습니다. navigationController의 pushViewController 함수가 호출 될 때마다 중단 점을 중지하면됩니다. 그러나 navigationController 코드에서 open func pushViewController()에 중단 점을 넣을 수는 없습니다. 어떻게해야합니까?Swift의 함수 호출 스택을 어떻게 디버깅 할 수 있습니까?

답변

0

UINavigationController을 확장하고 pushViewController 기능을 재정의 할 수 있습니다. 당신이 코드에서 탐색 컨트롤러를 만드는 경우

class MyNavigationViewController : UINavigationController { 
    override func pushViewController(_ viewController: UIViewController, animated: Bool) { 
     super.pushViewController(viewController, animated: animated) 
    } 
} 

그리고 당신은 스토리 보드를 사용하는 경우는, 코드도 MyNavigationViewController에 네비게이션 컨트롤러의 클래스를 변경합니다.

+0

나는이 목적을 위해 UINavigationController를 확장하는 것을 피하고 싶지만, 이것은 피할 수없는 일이라고 생각합니다. 감사. –