@@ -135,8 +135,6 @@ extension UINavigationController {
135
135
_ transition: AnyNavigationTransition ,
136
136
interactivity: AnyNavigationTransition . Interactivity = . default
137
137
) {
138
- backDeploy96852321 ( )
139
-
140
138
if defaultDelegate == nil {
141
139
defaultDelegate = delegate
142
140
}
@@ -147,6 +145,30 @@ extension UINavigationController {
147
145
customDelegate. transition = transition
148
146
}
149
147
148
+ swizzle (
149
+ UINavigationController . self,
150
+ #selector( UINavigationController . pushViewController) ,
151
+ #selector( UINavigationController . pushViewController_animateIfNeeded)
152
+ )
153
+
154
+ swizzle (
155
+ UINavigationController . self,
156
+ #selector( UINavigationController . popViewController) ,
157
+ #selector( UINavigationController . popViewController_animateIfNeeded)
158
+ )
159
+
160
+ swizzle (
161
+ UINavigationController . self,
162
+ #selector( UINavigationController . popToViewController) ,
163
+ #selector( UINavigationController . popToViewController_animateIfNeeded)
164
+ )
165
+
166
+ swizzle (
167
+ UINavigationController . self,
168
+ #selector( UINavigationController . popToRootViewController) ,
169
+ #selector( UINavigationController . popToRootViewController_animateIfNeeded)
170
+ )
171
+
150
172
#if !os(tvOS) && !os(visionOS)
151
173
if defaultEdgePanRecognizer. strongDelegate == nil {
152
174
defaultEdgePanRecognizer. strongDelegate = NavigationGestureRecognizerDelegate ( controller: self )
@@ -196,28 +218,6 @@ extension UINavigationController {
196
218
#endif
197
219
}
198
220
199
- private func backDeploy96852321( ) {
200
- func forceAnimatedPopToViewController( ) {
201
- swizzle (
202
- UINavigationController . self,
203
- #selector( UINavigationController . popToViewController) ,
204
- #selector( UINavigationController . popToViewController_forceAnimated)
205
- )
206
- }
207
-
208
- if #available( iOS 16 . 2 , macCatalyst 16 . 2 , tvOS 16 . 2 , * ) { } else {
209
- #if targetEnvironment(macCatalyst)
210
- let major = ProcessInfo . processInfo. operatingSystemVersion. majorVersion
211
- let minor = ProcessInfo . processInfo. operatingSystemVersion. minorVersion
212
- if ( major, minor) < ( 13 , 1 ) {
213
- forceAnimatedPopToViewController ( )
214
- }
215
- #else
216
- forceAnimatedPopToViewController ( )
217
- #endif
218
- }
219
- }
220
-
221
221
@available ( tvOS, unavailable)
222
222
@available ( visionOS, unavailable)
223
223
private func exclusivelyEnableGestureRecognizer( _ gestureRecognizer: UIPanGestureRecognizer ? ) {
@@ -232,8 +232,36 @@ extension UINavigationController {
232
232
}
233
233
234
234
extension UINavigationController {
235
- @objc private func popToViewController_forceAnimated( _ viewController: UIViewController , animated: Bool ) -> [ UIViewController ] ? {
236
- popToViewController_forceAnimated ( viewController, animated: true )
235
+ @objc private func pushViewController_animateIfNeeded( _ viewController: UIViewController , animated: Bool ) {
236
+ if let transitionDelegate = customDelegate {
237
+ pushViewController_animateIfNeeded ( viewController, animated: transitionDelegate. transition. animation != nil )
238
+ } else {
239
+ pushViewController_animateIfNeeded ( viewController, animated: animated)
240
+ }
241
+ }
242
+
243
+ @objc private func popViewController_animateIfNeeded( animated: Bool ) -> UIViewController ? {
244
+ if let transitionDelegate = customDelegate {
245
+ return popViewController_animateIfNeeded ( animated: transitionDelegate. transition. animation != nil )
246
+ } else {
247
+ return popViewController_animateIfNeeded ( animated: animated)
248
+ }
249
+ }
250
+
251
+ @objc private func popToViewController_animateIfNeeded( _ viewController: UIViewController , animated: Bool ) -> [ UIViewController ] ? {
252
+ if let transitionDelegate = customDelegate {
253
+ return popToViewController_animateIfNeeded ( viewController, animated: transitionDelegate. transition. animation != nil )
254
+ } else {
255
+ return popToViewController_animateIfNeeded ( viewController, animated: animated)
256
+ }
257
+ }
258
+
259
+ @objc private func popToRootViewController_animateIfNeeded( animated: Bool ) -> UIViewController ? {
260
+ if let transitionDelegate = customDelegate {
261
+ return popToRootViewController_animateIfNeeded ( animated: transitionDelegate. transition. animation != nil )
262
+ } else {
263
+ return popToRootViewController_animateIfNeeded ( animated: animated)
264
+ }
237
265
}
238
266
}
239
267
0 commit comments