The app is about inventory management. It has a bottom bar with 5 tabs (the last is a "More" tab).

Each tab is a fairly independent functional unit. Many of them need the user to select an inventory (or other similar grouping-entities), in order to display the content in the tab.

My first inclination was simply to make each tab a navigation controller. So the first view controller is a table view, where I display the inventory, and can add, edit, etc. them, and when I tap on one I show the view controller with all the things I can do inside each inventory.

My problem with this is that, from user's perspective, it feels a bit like overkill. In most cases the user should assume there's an inventory/group, and just start managing items inside it. The management of additional inventory should not be central in the app. Rather something that can be done—but not the first thing user sees when selecting a tab.

I'm contemplating different possibilities to replace the navigation controller. So far:

  • Side menu. Since the management of inventory is a secondary task, I thought this might be the best fit. The problem is that iOS side menus normally shift/cover the view controller containing the tabs, and this looks like it's something persistent across the app and not in the context of the current tab where I am. I need it to change for each tab. Further options, like settings, user profile, etc. are currently in the tabs! So the side menu would be only for my tabs where I need to select or create an inventory or my other groups. In tabs like user profile, settings, etc. there would be no side menu.

  • Drop down navigation controller (like this https://github.com/nmattisson/DropdownMenu) but the problems I see here are:

    1. Some tabs still won't have it.
    2. It has to change for each tab.
    3. It needs an Add or Edit button in order to add or edit inventory/groups. It seems that the dropdown would be overcrowded.
  • An additional button or row in each of my inventory/group—related tabs, which I can tap to show a popup/dropdown/modal view controller, where users can select, add, edit etc. their inventory/groups. But this could make the UI too complex and overcrowded, in my opinion.

  • A tab for the inventory in addition to the other groups, where the user can edit, add, etc. the inventory. But it would be still open to have an item inside the tabs that depend on them in order to select one. Here, again, I need to make a UI decision: dropdown, additional button, etc?

  • Start with the detail view controller, so skip the navigation controller, maybe replace the Back symbol in the upper left with only text e.g. "Inventory", giving basically the impression that my detail-view controller is the "main" view controller?

Any ideas/suggestions?

  • 4
    It's commendable that you're considering many options. This is the way to get to a quality interaction design. Given the complexity in your question, and the inclination of UX practitioners to think visually, you might improve your question by adding an illustration or two—because it will entice more people to respond with ideas and feedback.
    – JeromeR
    Oct 11, 2015 at 22:03

1 Answer 1


I'm not going to say whether a context-dependent side menu is the right choice or not. I feel like that's more a design-dependent question. What I will focus on is the UX standards and practices that might help you make up your mind.

Do you have a complete buildout for all the screens your app will show? I feel like doing this will lead to a natural sort of navigation as you begin to group your screens into categories.

Also, Apple has a great guide for navigation on their site. Here are some bullet points for their guide:

  1. Users should always know where they are in your app and how to get to their next destination. (AKA: Always show the page title)

  2. Use a navigation bar to give users an easy way to traverse a hierarchy of data.

  3. Use a tab bar to display several peer categories of content or functionality.

  4. Use a page control when each app screen represents an individual instance of the same type of item or page.

  5. In general, it’s best to give users one path to each screen.

Something that's become quite popular lately is to bash the hamburger menu and sidebars. Personally, I don't agree with their list of grievances. I think side menus, done properly, allow sets of information to only be visible when the user wants to see it, and they can then tuck it away when they're done. Most users are familiar with the icon, no matter how abstracted it may be, and know pressing that button will show a menu. They also know three dots will show a menu that is related more to their current view.

But really, more than anything, be old-fashioned: get some note cards, write the names of each screen, and organize them on a tabletop. Nine times out of ten, this will sort out any issues you're having with navigation. Also, stick to what's been done. You got an options panel? How do you get to your options in all your other apps? You got a profile screen? How do you view your profile in Facebook/Instagram/[insert popular app name here]. No need to reinvent the wheel.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.