Dialog Alternatives

Alert views and actions sheets are limited, inflexible, and inappropriate to any but the simplest cases. In more complex situations, it really isn’t that much work to implement an alternative.

Warning

One occasionally sees a misuse of the built-in dialogs to include additional interface. For example, a UIActionSheet is a UIView, so in theory you can add a subview to it. I cannot recommend such behavior; it clearly isn’t intended, and there’s no need for it. If what you need isn’t what a built-in dialog normally does, don’t use a built-in dialog.

On the iPhone, the main alternative is to navigate to a new screenful of interface. This might be by way of a navigation interface, or using a modal view. For example, in the Zotz app, in the Settings view, when the user taps a color, I summon a modal view, using a UIViewController subclass of my own, ColorPickerController (Figure 26-5).

A modal view functioning as a modal dialog

Figure 26-5. A modal view functioning as a modal dialog

On Mac OS X, the color picker in Figure 26-5 might be presented as a secondary window acting as a dialog. On the small iPhone screen, where there are no secondary windows, the modal view is the equivalent of a dialog. Indeed, one might argue that the action sheet shown in Figure 26-2 is not a very appropriate use of an action sheet, that it’s too intrusive and has too many buttons. It might have been better if I’d designed my own modal ...

Get Programming iOS 4 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.