v4.0.0
This major release adds support for composable transitions. See the catalog app for a variety of
examples making use of this new functionality.
Fixed issues
Breaking changes
MDMTransitionWithFallback
's return value is now nonnull. If you depended on the nil behavior,
you must now conform to the new protocolMDMTransitionWithFeasibility
and returnNO
for
canPerformTransitionWithContext:
.MDMTransitionDirection
has been renamed toTransitionDirection
in Swift.
New features
MDMTransitionWithFeasibility
allows a transition to indicate whether it is capable of performing
the transition with a given context.
The new composeWithTransition:
API on MDMTransitionContext
makes it possible to build modular
transition objects that delegate responsibility out to other transition objects. View the
PhotoAlbumTransition
example transition to see the following code in action:
context.compose(with: FadeTransition(target: .foreView, style: .fadeIn))
context.compose(with: SpringFrameTransition(target: .target(snapshotContextView),
size: fitSize))
if let toolbar = foreDelegate.toolbar(for: self) {
context.compose(with: SlideUpTransition(target: .target(toolbar)))
}
Source changes
- Add nullability annotations to MDMTransitionNavigationControllerDelegate. (#46) (featherless)
- Update Xcode build settings to Xcode 9 warnings and resolve build error. (Jeff Verkoeyen)
- Rework multi-transition support using composition. (#43) (featherless)
- Fix the Swift symbol name for MDMTransitionDirection. (#44) (featherless)
- Fix bug where transitions would not complete if the presentation controller didn't implement the startWithContext method. (#45) (featherless)
- Fix broken unit tests. (Jeff Verkoeyen)
- Add multi-transition support. (#40) (featherless)
- Remove unused protocol forward declaration. (Jeff Verkoeyen)
API changes
MDMTransitionWithCustomDuration
changed protocol MDMTransitionWithCustomDuration
now conforms to MDMTransition
.
MDMTransitionWithFallback
changed protocol MDMTransitionWithFallback
now conforms to MDMTransition
.
MDMTransitionWithFeasibility
new protocol MDMTransitionWithFeasibility
.
MDMTransitionContext
new method composeWithTransition:
Non-source changes
- Add platform to the Podfile per pod install recommendation. (Jeff Verkoeyen)