IOS15全屏滑动返回
生活随笔
收集整理的這篇文章主要介紹了
IOS15全屏滑动返回
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
IOS15全屏滑動返回
全程的用的思想是 Runtime 和 KVC 即 Runtime+KVC
oc的關鍵性寫法:
oc 要加入頭文件
#import<objc/runtime.h>
來獲取運行循環需要打印的類。都是在父類都是NavigationViewController里面書寫代碼的
swift寫法:
import UIKitclass CustomNavigationController: UINavigationController {override func viewDidLoad() {super.viewDidLoad()guard let systemGes = interactivePopGestureRecognizer else { return }guard let gesView = systemGes.view else { return }/* var count: UInt32 = 0let ivars = class_copyIvarList(UIGestureRecognizer.self, &count)!for i in 0..<count {let ivar = ivars[Int(i)]let name = ivar_getName(ivar)debugPrint(String(cString: name!))}*/let targets = systemGes.value(forKey: "_targets") as? [NSObject]guard let targetObjc = targets?.first else { return }debugPrint(targetObjc)debugPrint(targets)guard let target = targetObjc.value(forKey: "target") else { return } // guard let action = targetObjc.value(forKey: "action") as? Selector else { return }let action = Selector(("handleNavigationTransition:"))//4創建自己的手勢let panGes = UIPanGestureRecognizer()gesView.addGestureRecognizer(panGes)panGes.addTarget(target, action: action)}override func pushViewController(_ viewController: UIViewController, animated: Bool) {viewController.hidesBottomBarWhenPushed = truesuper.pushViewController(viewController, animated: animated)} }當然也有其他寫法,或者借助框架等。
https://gitee.com/johnson__save_admin/iosslide-back-swift
https://gitee.com/johnson__save_admin/iosslide-back-oc
總結
以上是生活随笔為你收集整理的IOS15全屏滑动返回的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: swift5.给系统类添加便利构造函数
- 下一篇: 手把手教你如何优化C语言程序