@@ -196,8 +196,10 @@ extension UINavigationController
196
196
func wr_popToViewController( _ viewController: UIViewController , animated: Bool ) -> [ UIViewController ] ?
197
197
{
198
198
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 {
201
203
displayLink? . invalidate ( )
202
204
displayLink = nil
203
205
popProperties. displayCount = 0
@@ -213,7 +215,7 @@ extension UINavigationController
213
215
func wr_popToRootViewControllerAnimated( _ animated: Bool ) -> [ UIViewController ] ?
214
216
{
215
217
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 )
217
219
CATransaction . setCompletionBlock {
218
220
displayLink? . invalidate ( )
219
221
displayLink = nil
@@ -229,6 +231,7 @@ extension UINavigationController
229
231
// change navigationBar barTintColor smooth before pop to current VC finished
230
232
func popNeedDisplay( )
231
233
{
234
+ print ( " popNeedDisplay " )
232
235
guard let topViewController = topViewController,
233
236
let coordinator = topViewController. transitionCoordinator else {
234
237
return
0 commit comments