My question is related to this one, but not exactly the same (I explain why in the Note below).
One of the screens of my iPad app displays a PDF file, and in the top right there is an "Action" bar button item (open box with arrow pointing up).
Initially, the spec called for the ability to print this PDF out, so I wired things up so that the button would trigger the Air Print dialog.
So far, so good.
Now, I need to add the option of sending the PDF file as an e-mail attachment. I could have added a second, dedicated bar button item, but it makes sense to group both actions under the "Share" idea (the icon lends itself to this interpretation). Splitting into two buttons would require explicit icons for "Print" (e.g., a printer) and "E-mail" (e.g., an envelope).
So I decided to show a popover table view with two rows instead, anchored to the bar button item:
- Print Document...
- Send by email...
The problem is, What to do when e-mail is not available (i.e., there is no e-mail account registered on the device).
Showing the user the e-mail option and displaying an alert when they select it is awful user experience, so it's out of the question.
The options I came up with are:
Remove the e-mail option and leave the "Print..." option alone. The Cons: Showing a popover menu with only one option feels redundant (requires one extra tap); so perhaps instead...
Fallback to the previous specification, skip the popover menu and launch the print dialog directly. Cons: The interface loses consistency between the "E-mail account available" and the "E-mail account NOT available" cases.
Leave the popover menu and both options in place, but gray the E-mail option out if no account is available (and possibly adding a sub-text suggesting the user to register an account). Cons: Seems verbose / non-smart.
I'm torn between 1. and 3., but 2. does make sense in its own way too...
Note: my question is not a duplicate because both cases (menu having two options and menu having only one option) can happen on the same version of the software (the linked question refers to a spec that calls for one option right now, but which might increase to two or more in the future)