Modality—that is, a mode in which something exists or is experienced—has advantages and disadvantages. It can give users a way to complete a task or get information without distractions, but it does so by temporarily preventing them from interacting with the rest of the app.
Ideally, people can interact with iOS apps in nonlinear ways, so it’s best when you can minimize the number of modal experiences in your app. In general, consider creating a modal context only when:
It’s critical to get the user’s attention
A self-contained task must be completed—or explicitly abandoned—to avoid leaving the user’s data in an ambiguous state
Keep modal tasks simple, short, and narrowly focused. You don’t want your users to experience a modal view as a mini app within your app. If a subtask is too complex, people can lose sight of the main task they suspended when they entered the modal context. Be especially wary of creating a modal task that involves a hierarchy of views, because people can get lost and forget how to retrace their steps. If a modal task must contain subtasks in separate views, be sure to give users a single, clear path through the hierarchy, and avoid circularities. For guidelines on using modal views, see Modal View.
Always provide an obvious and safe way to exit a modal task. People should always be able to predict the fate of their work when they dismiss a modal view.
If the task requires a hierarchy of modal views, make sure your users understand what happens if they tap a Done button in a view that’s below the top level. Examine the task to decide whether a Done button in a lower-level view should complete only the part of the task in that view, or the entire task. Because of this potential for confusion, avoid adding a Done button to a subordinate view as much as possible.
Reserve alerts for delivering essential—and ideally actionable—information. An alert interrupts the user’s experience and requires a tap to dismiss, so it’s important for users to feel that the alert’s message warrants the intrusion. To learn more, see Alert.
Respect users’ preferences for receiving notifications. In Settings, users indicate how they want to receive notifications from your app. Be sure to abide by these preferences so that users aren’t tempted to turn off all notifications from your app.