Use of weak self to avoid strongly captured over-retained self in blocks

While using your great lib in a project, we ran into a scenario where we had multiple storyboards - one for login, and then one for the main project. The main project had a PKRevealController as it's root VC. If we tore down the VC stack by replacing the window's rootViewController, the PKRevealController's entire hierarchy was retained. After much digging, we found out it was due to the strongly captured self in the animation blocks occurring.