@@ -196,8 +196,10 @@ extension UINavigationController
196196 func wr_popToViewController( _ viewController: UIViewController , animated: Bool ) -> [ UIViewController ] ?
197197 {
198198 var displayLink : CADisplayLink ? = CADisplayLink ( target: self , selector: #selector( popNeedDisplay) )
199- displayLink? . add ( to: RunLoop . main, forMode: . defaultRunLoopMode)
200- CATransaction . setCompletionBlock {
199+ // UITrackingRunLoopMode: 界面跟踪 Mode,用于 ScrollView 追踪触摸滑动,保证界面滑动时不受其他 Mode 影响
200+ // NSRunLoopCommonModes contains kCFRunLoopDefaultMode and UITrackingRunLoopMode
201+ displayLink? . add ( to: RunLoop . main, forMode: . commonModes)
202+ CATransaction . setCompletionBlock {
201203 displayLink? . invalidate ( )
202204 displayLink = nil
203205 popProperties. displayCount = 0
@@ -213,7 +215,7 @@ extension UINavigationController
213215 func wr_popToRootViewControllerAnimated( _ animated: Bool ) -> [ UIViewController ] ?
214216 {
215217 var displayLink : CADisplayLink ? = CADisplayLink ( target: self , selector: #selector( popNeedDisplay) )
216- displayLink? . add ( to: RunLoop . main, forMode: . defaultRunLoopMode )
218+ displayLink? . add ( to: RunLoop . main, forMode: . commonModes )
217219 CATransaction . setCompletionBlock {
218220 displayLink? . invalidate ( )
219221 displayLink = nil
@@ -229,6 +231,7 @@ extension UINavigationController
229231 // change navigationBar barTintColor smooth before pop to current VC finished
230232 func popNeedDisplay( )
231233 {
234+ print ( " popNeedDisplay " )
232235 guard let topViewController = topViewController,
233236 let coordinator = topViewController. transitionCoordinator else {
234237 return
0 commit comments