forkingdog / FDFullscreenPopGesture

A UINavigationController's category to enable fullscreen pop gesture with iOS7+ system style.
MIT License
5.9k stars 1.15k forks source link

求解惑 #183

Closed changsanjiang closed 6 years ago

changsanjiang commented 6 years ago

大神, 我有两点疑惑.如下:

  1. load方法中替换pushViewController:animated:时, 在此处为什么需要调用class_replaceMethod...

  2. 如果class_replaceMethod执行了, 而fd_pushViewController:animated:方法中会调用自己, 岂不是造成无限循环啦?

JazzPC commented 6 years ago
  1. 调用class_replaceMethod 函数是为了将这两个函数的函数指针就行调换,调换后系统的函数指针指向了你自己编写的函数,而你自己编写的函数指针指向了系统的函数
  2. 因为两个函数的指针互相调换了 所以在fd_pushViewController:animated:中调用自己其实是调用了系统的函数

发自网易邮箱大师

在2018年07月9日 15:41,changsanjiangnotifications@github.com 写道:

大神, 我有两点疑惑.如下:

load方法中替换pushViewController:animated:时, 在此处为什么需要调用class_replaceMethod...

如果class_replaceMethod执行了, 而fd_pushViewController:animated:方法中会调用自己, 岂不是造成无限循环啦?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.

changsanjiang commented 6 years ago

谢谢你的回答, 我被绕晕了, 刚刚看懂了😆

JazzPC commented 6 years ago

不客气

发自网易邮箱大师

在2018年07月9日 15:47,changsanjiangnotifications@github.com 写道:

谢谢你的回答, 我被绕晕了, 刚刚看懂了😆

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.