PCSideBarController 1.0.4

PCSideBarController 1.0.4

TestsTested
LangLanguage Obj-CObjective C
License MIT
ReleasedLast Release Dec 2014

Maintained by Unclaimed.


Downloads

Total29
Week0
Month0

Installs

Apps5
powered by Segment

GitHub

Stars16
Watchers2
Forks4
Issues0
Contributors0
Pull Requests0

Code

Files8
LOCLines of Code 314



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}

Author

anoiaque, [email protected]

License

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