Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

anoiaque/PCSideBarController

Open more actions menu

Repository files navigation

PCSideBarController

UIViewController which provide navigation via a side bar.

Side bar items are to select view controller and manage also actions buttons.

Usage

Sample project using SideBarController under /Example: PCSideBarController Sample.xcodeproj

Here is a quick show :

alt tag

###SideBarController

PCSideBarController* sideBarController = [[PCSideBarController alloc]init];

// Set a delegate if you want a callback on didSelectViewController:

sideBarController.delegate = self;

// Set SideBar background color

sideBarController.sideBarBackgroundColor = [UIColor yellowColor];

// Set a SideBar border (default NO)

sideBarController.drawBorder = YES;

// Set First item offset from top of sideBar view (default 0)

sideBarController.leadingOffset = 100.0f;

// Set Last item offset from bottom of sideBar view (default 0)

sideBarController.tailingOffset = 20.0f;

// Set overlay color of selected item

sideBarController.sideBarItemHighlightedColor = [UIColor redColor];

// Assign viewControllers for sideBar

sideBarController.viewControllers = @[[[BookmarksViewController alloc] init],
                                       [[TodayViewController alloc] init]];

// Add buttons items to sideBar (will be displayed after VC items)
// Buttons items are not attached to any VC, they are to handle any action.

PCSideBarItem* pinActionItem = [[PCSideBarItem alloc]init];
pinActionItem.image = [UIImage imageNamed:@"pin"];

// Block action on touch

pinActionItem.itemTouched = ^(NSIndexPath* indexPath){
  UIAlertView* alertView = [[UIAlertView alloc]initWithTitle:@"SideBar Button Item" message:@"Pin Action" delegate:nil cancelButtonTitle:@"Cancel" otherButtonTitles:nil];
  [alertView show];
};

// Block action on long touch

pinActionItem.itemLongPressed = ^(NSIndexPath* indexPath){
  UIAlertView* alertView = [[UIAlertView alloc]initWithTitle:@"SideBar Button Item" message:@"Pin Action when long pressed" delegate:nil cancelButtonTitle:@"Cancel" otherButtonTitles:nil];
  [alertView show];
};

// Assign actions items to side bar VC

sideBarController.buttonsItems = @[pinActionItem];

// Set Action Item active/inactive

[sideBarController setActionItemAtIndex:0 active:YES];

// Reload SideBar

//[_sideBarController reloadSideBar];

// Reload Selected View Controller content view

//[_sideBarController reloadContentView];

PCSideBarControllerDelegate

Protocol : PCSideBarControllerDelegate
Optional method : sideBarController:didSelectViewController:


- (void)sideBarController:(PCSideBarController *)sideBarController didSelectViewController:(UIViewController *)viewController
{
  NSLog(@"ViewController %@ Selected", viewController.class);
}

View controller assigned to SideBarController configuration

@implementation BookmarksViewController

- (id)init
{
  self = [super init];
  if (self) {
    self.sideBarItem.image = [UIImage imageNamed:@"bookmark"];
    self.sideBarItem.title = @"Bookmarks";
  }
  return self;
}
...
@end

Installation

Copy sources files Classes/ios/*.{h,m}

PCSideBarController is available through CocoaPods, to install it simply add the following line to your Podfile:

pod "PCSideBarController"

Changelog

Author

anoiaque, anoiaque@gmail.com

License

PCSideBarController is available under the MIT license. See the LICENSE file for more info.

About

UIViewController which provide navigation via a side bar.

Resources

License

Stars

Watchers

Forks

Packages

No packages published
Morty Proxy This is a proxified and sanitized view of the page, visit original site.