Reveal side ViewControllers similar to Facebook/Path's menu
Switch branches/tags
Nothing to show
Pull request Compare This branch is 73 commits behind gotosleep:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



JASidePanels is a UIViewController container designed for presenting a center panel with revealable side panels - one to the left and one to the right. The main inspiration for this project is the menuing system in Path 2.0 and Facebook's iOS apps.


iPhone Example iPad Example

Example Code

#import "JAAppDelegate.h"

#import "JASidePanelController.h"
#import "JACenterViewController.h"
#import "JALeftViewController.h"
#import "JARightViewController.h"

@implementation JAAppDelegate

@synthesize window = _window;
@synthesize viewController = _viewController;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
	self.viewController = [[JASidePanelController alloc] init];
	self.viewController.leftPanel = [[JALeftViewController alloc] init];
	self.viewController.centerPanel = [[UINavigationController alloc] initWithRootViewController:[[JACenterViewController alloc] init]];
	self.viewController.rightPanel = [[JARightViewController alloc] init];
	self.window.rootViewController = self.viewController;
    [self.window makeKeyAndVisible];
    return YES;



Only two files are required for using JASidePanels: JASidePanelController.h & JASidePanelController.m

The easiest way to use JASidePanels is to copy the files into your XCode Project.

Alternatively, you can setup a git submodule and reference the files in your Xcode project. I prefer this method as it enables you to receive bugfixes/updates for the project. git submodule add JASidePanels


JASidePanels requires iOS 5.0+ The projects uses ARC, but it may be used with non-ARC projects by setting the: -fobjc-arc compiler flag on JASidePanelController.m. You can set this flag under Target -> Build Phases -> Compile Sources


JASidePanels is used in the following apps:


Other projects implementing a similar UI