Joo Park
Joo Park

Reputation: 3145

Wizard style of interface in iPhone

How would one implement a wizard style interface for the iPhone?

For instance I have a form that I would like to break down into 5 different pages or views instead of putting all the information to fill out into one page or view.

This interface must have the ability to go prev or next in case they want to change something on page 2 when they are on page 4.

This interface must have the ability to go to page 3 directly and still be able to go prev and next. Seems like using UINavigationController wouldn't work here since views 1 and 2 are not on the stack so prev would not work.

Update: Check out the "gas cubby" application. It has what I'm looking for. UITableView presents the items you can fill out. Selecting a row takes you to the detail view to enter data and prev and next to fill in other information.

Upvotes: 0

Views: 2020

Answers (4)

Rikitikitavi
Rikitikitavi

Reputation: 11

A "wizard" UI is typically used when you have a relatively small number of steps where one step depends on the previous, at least at some steps, the results or presentation depends on previous steps. This is like a navigation tree that usually results in the use of the navigation controller, but with only one potential branch at each each step. My feeling is that the navigation UI would be perfect, but with one exception; A button on the right hand side of the navigation bar that is the left to right mirror image of the "back" button that is usually found in the left part of the navigation button. That button would navigate to the the next step, and at each step the page presented would allow the user to fill in the information for that step. The only problem then is navigating to a step not the next or previous, and this could be corrected with a custom button that includes a drop-down list of the steps in the process. And this would fit nicely with the rest of the iPhone UI, which Gas Cubby's wizard UI (as good as it is) does not.

Upvotes: 1

If you really want them to be able to skip around the process, the combination of a UINavigation controller with a UISegmentedControl to jump to sections would do what you want. You can either embed the segmented control in the nav bar or place it just below the nav bar (which seems more like what you want since you have five sections).

If the Segmented control is not quite to your taste just put up any set of five buttons to change sections and make them visually appealing.

Upvotes: 1

bpapa
bpapa

Reputation: 21497

I would say use a Navigation Controller. On the 1st view, show the 5 options in a Table View. The user selects a row, and then the corresponding section is pushed onto the stack as a new UIViewController. So, if they are in view #3 and want to go back to view #1 (to be honest, I would recommend rethinking whether or not somebody in the real world will actually want to do this), they hit "back" and then select view #1 from the table.

I can't think of a better way to do this because you won't have room to do something like breadcrumbing, which Apple would recommend against anyway. You could use a tab bar but that is more like options then some sort of wizard workflow.

Upvotes: 1

Darren
Darren

Reputation: 25619

UINavigationController seems like the obvious solution. It gives you nice, familiar page transitions for free, and if you need to jump to a specific page you can just set up your navigation stack without using the transition animations.

Upvotes: 3

Related Questions