|
| 1 | +# 4.0.0 |
| 2 | + |
| 3 | +This major release adds support for composable transitions. See the catalog app for a variety of |
| 4 | +examples making use of this new functionality. |
| 5 | + |
| 6 | +## Fixed issues |
| 7 | + |
| 8 | +- [Transitions would not complete if the presentation controller didn't implement the startWithContext method](https://github.com/material-motion/transitioning-objc/pull/45) |
| 9 | + |
| 10 | +## Breaking changes |
| 11 | + |
| 12 | +- `MDMTransitionWithFallback`'s return value is now nonnull. If you depended on the nil behavior, |
| 13 | +you must now conform to the new protocol `MDMTransitionWithFeasibility` and return `NO` for |
| 14 | +`canPerformTransitionWithContext:`. |
| 15 | +- `MDMTransitionDirection` has been renamed to `TransitionDirection` in Swift. |
| 16 | + |
| 17 | +## New features |
| 18 | + |
| 19 | +`MDMTransitionWithFeasibility` allows a transition to indicate whether it is capable of performing |
| 20 | +the transition with a given context. |
| 21 | + |
| 22 | +The new `composeWithTransition:` API on `MDMTransitionContext` makes it possible to build modular |
| 23 | +transition objects that delegate responsibility out to other transition objects. View the |
| 24 | +`PhotoAlbumTransition` example transition to see the following code in action: |
| 25 | + |
| 26 | +```swift |
| 27 | +context.compose(with: FadeTransition(target: .foreView, style: .fadeIn)) |
| 28 | +context.compose(with: SpringFrameTransition(target: .target(snapshotContextView), |
| 29 | + size: fitSize)) |
| 30 | + |
| 31 | +if let toolbar = foreDelegate.toolbar(for: self) { |
| 32 | + context.compose(with: SlideUpTransition(target: .target(toolbar))) |
| 33 | +} |
| 34 | +``` |
| 35 | + |
| 36 | +## Source changes |
| 37 | + |
| 38 | +* [Add nullability annotations to MDMTransitionNavigationControllerDelegate. (#46)](https://github.com/material-motion/motion-transitioning-objc/commit/302d3c4ec526ffa942d23937fdfe8ef5163d473d) (featherless) |
| 39 | +* [Update Xcode build settings to Xcode 9 warnings and resolve build error.](https://github.com/material-motion/transitioning-objc/commit/5ed85cdc795ae6660901c5e2ae237732f04649e1) (Jeff Verkoeyen) |
| 40 | +* [Rework multi-transition support using composition. (#43)](https://github.com/material-motion/transitioning-objc/commit/0b57361557476c7d3ecb8f4c9878da21a2e735ab) (featherless) |
| 41 | +* [Fix the Swift symbol name for MDMTransitionDirection. (#44)](https://github.com/material-motion/transitioning-objc/commit/4cdcf4ca0324a1f83d572440887fe5a5d18ee00b) (featherless) |
| 42 | +* [Fix bug where transitions would not complete if the presentation controller didn't implement the startWithContext method. (#45)](https://github.com/material-motion/transitioning-objc/commit/784328dae8509df0a2beb3a5afa9701f1e275950) (featherless) |
| 43 | +* [Fix broken unit tests.](https://github.com/material-motion/transitioning-objc/commit/46c92ebcab642969ba70ea43aa512cac1cc3cad4) (Jeff Verkoeyen) |
| 44 | +* [Add multi-transition support. (#40)](https://github.com/material-motion/transitioning-objc/commit/8653958a5a9419891861fb6fd7648791ca3c744c) (featherless) |
| 45 | +* [Remove unused protocol forward declaration.](https://github.com/material-motion/transitioning-objc/commit/74c1655fc3614e5e9788db8b53e8bff83691137a) (Jeff Verkoeyen) |
| 46 | + |
| 47 | +## API changes |
| 48 | + |
| 49 | +### MDMTransitionWithCustomDuration |
| 50 | + |
| 51 | +*changed* protocol `MDMTransitionWithCustomDuration` now conforms to `MDMTransition`. |
| 52 | + |
| 53 | +### MDMTransitionWithFallback |
| 54 | + |
| 55 | +*changed* protocol `MDMTransitionWithFallback` now conforms to `MDMTransition`. |
| 56 | + |
| 57 | +### MDMTransitionWithFeasibility |
| 58 | + |
| 59 | +*new* protocol `MDMTransitionWithFeasibility`. |
| 60 | + |
| 61 | +### MDMTransitionContext |
| 62 | + |
| 63 | +*new* method `composeWithTransition:` |
| 64 | + |
| 65 | +## Non-source changes |
| 66 | + |
| 67 | +* [Add platform to the Podfile per pod install recommendation.](https://github.com/material-motion/transitioning-objc/commit/7384187b2ddd6a2760f5279cabb5032ea3b1e24e) (Jeff Verkoeyen) |
| 68 | + |
1 | 69 | # 3.3.0
|
2 | 70 |
|
3 | 71 | This minor release deprecates some behavior and replaces it with a new API.
|
|
0 commit comments