Clarify comment
Prevent crash if no completion handler was specified
Use cleaner API

The keepDimmingView parameter can be deducted based on whether a new alert will be displayed or not, so the parameter can be removed from the method
Simplify methods for showing an alert
Use single CATransaction for dismissing and presenting alert simultaneously

Previously, the dismissing and presenting had their own CATransactions. With a single transaction, there is only one completion block, making it a bit easier to dismiss and present an alert. For reasons beyong my understanding, directly modifying the content layer transform to the new, smaller value causes the alert to jump to the top-left corner, which is why that line was removed. This did not seem to cause other issues.

There is one problem with this solution: when dismissing the alert that is currently presented (before it’s done animating), the alert’s delegate methods are called with buttonIndex 0 (hardcoded). This is not a trivial problem, because without storing method calls, the coordinator can’t figure out what buttonIndex was used to dismiss that alert after dismissAlert:withButtonIndex: goes out of scope.
Use proper transition queue

This fixes the issue that showing/dismissing calls made while another transition was in progress could lead to some odd behavior due to race conditions. Those calls are now stored in NSInvocation instances and stored in an array that gets processed when an animation finishes.
Reorganize SDCAlertViewCoordinator
Honor animated argument when calling dismissWithClickedButtonIndex:animated:
iOS 6.0 deployment target.