Skip to content


Subversion checkout URL

You can clone with
Download ZIP
FRLayeredNavigationController, an iOS container view controller that works like a stack of paper with an API similar to UINavigationController.
Objective-C CSS Other


FRLayeredNavigationController, an iOS container view controller with an API similar to UINavigationController. Influenced by the UI of the Twitter and Soundcloud iPad apps, the user will think of a stack of paper and has similar interaction options.

Official Project Home: . You can also find FRLayeredNavigationController at Ohloh.

See below for documentation and instructions (including a screencast) on how to add FRLayeredNavigationController to your project.

If you have further questions, feel free to mail me!

Flattr this git repo

©2012-2015, Johannes Weiß for factis research GmbH.



  • The API feels very natural to iOS developers since it's very similar to the API of UINavigationController
  • FRLayeredNavigationController uses ARC (automatic reference counting) but you can use it in your legacy projects without ARC, too
  • Low memory conditions and rotation are handled correctly with FRLayeredNavigationController
  • FRLayeredNavigationController works on the iPad, the iPhone and iPod touch but the UI concept is best on the iPad since the big screen
  • You can easily install FRLayeredNavigationController using CocoaPods or manually (screencast and instructions below)
  • Correctly handles view.frame and view.bounds and has therefore no problems with view.transform (such as rotations) as you can see on this screenshot.
  • App Store compatible (uses only Public API and was already approved by Apple)
  • iOS 7 & 8 Support (still supports iOS6 and older with old visuals)


It's all open source but you can use it in your commercial product free of charge. FRLayeredNavigationController is licensed under the terms of the Modified BSD License.

Demo Videos


Known Users

RecordBox (App Store)

Checkpad MED

Wunderlist (App Store)

Adding FRLayeredNavigationController to your project

FRLayeredNavigationController is compiled as static libraries. It use Xcode's "dependent project" facilities. If you're familiar with CocoaPods use that, just add the dependency 'FRLayeredNavigationController' to your Podfile.

Here is how: Estimated time: 5 minutes.

There's also a screencast which shows how to add FRLayeredNavigationController to a project and how to switch from UINavigationController to FRLayeredNavigationController: .

  1. Clone the FRLayeredNavigationController git repository: git clone Make sure you store the repository in a permanent place because Xcode will need to reference the files every time you compile your project.

  2. Locate the "FRLayeredNavigationController.xcodeproj" file under "FRLayeredNavigationController". Drag FRLayeredNavigationController.xcodeproj and drop it onto the root of your Xcode project's "Groups and Files" sidebar.

  3. Now you need to link the FRLayeredNavigationController static libraries to your project. Add libFRLayeredNavigationController.a to the Link Binary With Libraries section of your project's Build phases.

  4. Finally, we need to tell your project where to find the FRLayeredNavigationController headers. Open your "Project Settings" and go to the "Build" tab. Look for "Header Search Paths" and double-click it. Add the relative path from your project's directory to the "FRLayeredNavigationController/" directory.

  5. While you are in Project Settings, go to "Other Linker Flags" under the "Linker" section, and add "-ObjC", "-fobjc-arc" and "-all_load" to the list of flags.

  6. You're ready to go. Just #import "FRLayeredNavigationController/FRLayeredNavigation.h" anywhere you want to use FRLayeredNavigationController in your project.

If you want to, you can install appledoc and type appledoc . in FRLayeredNavigationController's root directory to install the API documentation in Xcode.

Something went wrong with that request. Please try again.