Skip to content

UIViewController subclass using SDSegmentedControl and View Controller Containment API's to switch between child view controllers

License

Notifications You must be signed in to change notification settings

nickygerritsen/NGSegmentedViewController

Repository files navigation

NGSegmentedViewController: A segmented view controller

Build Status

UIViewController subclass using SDSegmentedControl and View Controller Containment API's to switch between child view controllers

NGSegmentedViewController

(click to download a video of the controller in action).

Features

  • Uses View Controller Containment API's to display a list of view controllers
  • Uses the excellent SDSegmentedControl to display a view controller switcher at the top
  • Can be used with code and Interface Builder
  • Can be used with Autolayout
  • When using UITableView's or UICollectionView's automatically adjusts contentInset and scrollIndicatorInsets to accomodate for segmented control
  • Allows for a delegate to be notified when the selected view controller will / did change

Requirements

  • ARC
  • Xcode 4.4+ (needed for modern Objective-C syntax)
  • iOS 6+

Installation

From CocoaPods

Add pod 'NGSegmentedViewController' to your Podfile.

Manually

Important note if your project doesn't use ARC: you must add the -fobjc-arc compiler flag to NGSegmentedViewController.m in Target Settings > Build Phases > Compile Sources.

  • Drag the NGSegmentedViewController/NGSegmentedViewController folder into your project
  • Download SDSegmentedControl and drag SDSegmentedControl.{h,m} into your project
  • Add the QuartzCore framework to your project
  • You might need to change the #import <SDSegmentedControl/SDSegmentedControl.h> in NGSegmentedViewController.h to #import "SDSegmentedControl.h"

Demos

I have added two demos. NGSegmentedViewController example uses code to set up a segmented view controller and NGSegmentedViewController IB example uses Interface Builder to set one up.

Note

As this is my first open source iOS control, it is possible that I made mistakes. Furthermore, I only implemented features that seemed useful to me. If you find any errors or want extra features, feel free to fork this project and sent in a Pull Request.

Usage

Instantiate a segmented view controller with initWithViewControllers: or initWithViewControllers:titles:.

When using Interface Builder, create a subclass and overwrite awakeFromNib to call setupWithViewControllers: or setupWithViewControllers:titles:.

License and copyright

All source code is licensed under the MIT-License.

Copyright 2013 Nicky Gerritsen.

Authors

About

UIViewController subclass using SDSegmentedControl and View Controller Containment API's to switch between child view controllers

Resources

License

Stars

Watchers

Forks

Packages

No packages published