iOS 응용 (swift)
[iOS - swift] popToRootViewController의 completion 인자를 가진 커스텀 함수 만드는 방법 (CATransaction 사용)
jake-kim
2021. 1. 12. 22:10
CATransaction이란?
- Core Animation의 한 종류
- implicit transaction과 explicit transaction (run loop개념과 동일)에서 explicit transaction을 할 때 CATransaction을 run loop에 CATransaction.commit()코드 이후에 보내게 됨
- CATransaction.commit()코드 전에 CATransaction 속성을 지정해주면 전환 관련 애니메이션이 지정해준대로 명시적(explicit)으로 실행

사용 방법
- UINavigationController를 extension하여 사용
extension UINavigationController {
func popToRoot(completion: @escaping () -> Void) {
CATransaction.begin()
CATransaction.setCompletionBlock(completion)
navigationController?.popToRootViewController(animated: true)
CATransaction.commit()
}
}