I need to design a form that may consist of 3 or 4 steps, all of them requesting both mandatory and optional data. The overall form contains a lot of data inputs, so I thought it would be better to split the form into pages or steps, to avoid having a too long vertical scrolling.
I can't find any practical example of such a long form in an existing iOS app, since most of them just request few data to create an account, but my app requires collecting more user input.
Would it be a good approach to build a view for each form step, and push them all in a navigation controller?
The idea is to have the back button in the navigation bar to allow going to the previous step, and a "next" button to go forward, I don't know if placing it in the navigation bar as well, or at the bottom edge of the current view. Or maybe could I use a stepper with arrows similar to the Mail app? I couldn't find anything about it in iOS Human Interface Guidelines, only a stepper with +/- buttons. Or a segmented control, with a segment per step?
However, in iOS Human Interface Guidelines, in navigation bar section I've read that it is intended for "navigation through an information hierarchy" (iOS Human Interface Guidelines). I don't know how strict is Apple when applying the guidelines in the document when submitting to the App Store, and if using this approach for peer views, as in this case, would be rejected. Another option I thought, it was using instead a page control and a scroll view... but here comes into play input validation. I suppose that for a long multistep form it should be better to validate each step's inputs before allowing continue, shouldn't it? I find easier to handle this in the first approach (navigation controller and bar), simply enabling the "next" button when the inputs correctly fulfilled, than in the page control approach (where I actually don't know if it is possible to momentarily disable forward page scrolling).