Instance Method

notifyWhenInteractionEnds(_:)

Registers a block to be executed when a transition changes from interactive to non-interactive.

Required.

Declaration

func notifyWhenInteractionEnds(_ handler: @escaping (UIViewControllerTransitionCoordinatorContext) -> Void)

Parameters

handler

The block to execute when the transition changes from interactive to noninteractive. The block has no return value and takes the following parameter:

context

The contextual information for performing the animations. Use this object to get the animation-related information. For more information, see UIViewControllerTransitionCoordinatorContext.

Discussion

Your block is executed both when the transition completes normally and when the user cancels the transition. In the case where the user cancels the transition, UIKit executes your context block, calls the viewWillDisappear(_:) method on the presented view controller, and finally calls the viewWillAppear(_:) method on the original view controller to signal that it is once again visible.

Inside your block, you can get the value of the isCancelled() method of the transition coordinator context and use that value to determine the appropriate course of action. For example, if the transition was cancelled, you might use this block to remove any extra views that were added to the view hierarchy by a previous call to animate(alongsideTransition:completion:) or animateAlongsideTransition(in:animation:completion:).

You can call this method multiple times to register multiple blocks. All of the registered blocks are executed when the transition state changes.

See Also

Responding to View Controller Transition Progress

func notifyWhenInteractionChanges((UIViewControllerTransitionCoordinatorContext) -> Void)

Registers a block to be executed when a transition changes from interactive to non-interactive.

Required.

Beta Software

This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software.

Learn more about using Apple's beta software