I need to port some website components to an iOS application. One of those components being a Data Tree. Is there a way to implement a Data Tree component in an iOS application or is there another nice alternative?

Each data component (node) has some detail info (text and numbers). Like in image below, a node like "Product" will have some detail plus child nodes which have similar details and child nodes. Nodes are limited and almost fixed like categories, which may change annually or bi-annually.

EDIT: Added an image of what the data tree looks like on the website.

e.g data tree on site


2 Answers 2


To my knowledge in iOS, there is no way to do so with any pre-existing UIKit controls like UITabBarController or UINavigationController. The iOS Human Interface Guidelines also do not discuss executing a traditional desktop tree-view hierarchy.

Conceptually, a tree-view exists to represent a hierarchical data relationship to the user. The canonical way to present hierarchical data to a user in iOS is with a drill down UINavigationController system. This is a much simpler interface for small, touch-based screens like the iPhone.

UIKit doesn't make it easy for you to show a tree-view, but that doesn't mean you can't roll your own. Just make sure that your designs really warrant the use of the tree-view over a UINavigationController, as doing so will go against the spirit of the iOS Human Interface Guidelines.

For additional insight I would recommend viewing the following thread:

tree view for mobile devices?

  • Thanks Courtny for the link. The only disadvantage of drilldown list is there is too much of back and forth if you want to switch between the nodes. Commented Feb 26, 2014 at 5:14
  • @VishalKardode That's the nature of gesture-centered applications on iOS. If you don't like the back-and-forth nature of drilldowns, then I would recommend rethinking the tree concept altogether.
    – Hynes
    Commented Feb 26, 2014 at 14:52

I use SwiftListTreeDataSource to visualise hierarchical data structures (trees) in lists-like way. It's UI agnostic, just like view-model, so you can use it with UITableView/UICollectionView/NSTableView or even SwiftUI with search feature. enter image description here

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.