A client of mine asked for a basic version of an iPhone application to work with, and has been happily using it for 2 months now. Now he wants me to implement the full version but I'm having trouble finding a good interface to make it both visually attractive and practical in use: I should use a completely different tab-bar at the bottom, depending on the context. I know that according to the GUI guidelines I shouldn't be doing that...
To make things more complex I'm under NDA so this doesn't make it easier to describe the problem, but let me try.
Current Version: has a tab-bar (at the bottom) with 3 tabs, first 2 are TableViews, 3rd one contains a map. (a 4th one may be needed in the future)
The first tab has a grouped table View, with a segmented Control at the top. The segmented control is to navigate between days (each of the options reveals a different table view). The items in the tableView, let's call them x1, x2, x3... x30 are grouped by location. On each of the x's the user can click and get's a detail view (navigationController)
Second tab contains ALL the x's from the first tab, but now alphabetically with a search function on the top, and again the user can click to see a detail screen
Third tab is a map with all the x's on, zoomable (pinch)
Ok, as said this interface works great. Now for the next version... Seeing things in a bigger perspective one could say that all those x's actually belong to an item X. There are now more of those items: eg a Y with small y's that should be displayed like those x's, a Z... about a 100 at the moment. The thing is that those 100 items are for the whole company, each user as such will need to pick a few of them and work with it. So at above the existing level we would need 3 views (and tabs would be great here too... but afaik it will be either a tab-bar here or at the lower level)
View 1: all items grouped : X, Y, Z... grouped in some way (so again a TableView). User should be able to flag an item. Those flagged items will appear in View 3
View 2: all items alfabetically: with a search function. User should be able to flag an item. Those flagged items will appear in View 3
For both View 1 and 2 a detail view to see the content (eg those x's) may be needed (would be great)
View 3 : my items : a subset of View 1 (and 2) containing those flagged Items, user should be able to select an Item and continue working like he did with the existing program
My first thoughts were using a tab-bar for this top level, and replace it with a new tab-bar when going down in View 3, with some kind of option in that bottom level to go up again.But I understand this would be against GUI guidelines.
Another option is the use of a drill-down functionality in the TableViews but this is not always a pleasant way of working (go up 2 levels and go down 2 levels again... just like in Mail app, pre iOS 4 for your inboxes)
Some more info: a user will spend about 80% of his time in what currently exists, 20% in the new functionality. User will start in the morning by checking at the top level if there are company items he should add to his 'My Items' view, and then select one of those an work all day in it.
Some other thoughts/problems : in what exists we use a segmented Control at the top for the days, until now no Items spanned over more than 4 days, but sometimes an item will span over 10 or 15 days and then such a segmented control won't work. We could move this also to a Table View containing those days but again this means navigate a level up and one down compared to the current implementation.
Sorry if this is complex, feel free to ask more info... Feel also free to suggest a completely different interface