Latest 0.1.7
License MIT
Platforms ios 7.0

[![CI Status]( Cardona Rojas/PagedAlertController.svg?style=flat)]( Cardona Rojas/PagedAlertController)


To run the example project, clone the repo, and run pod install from the Example directory first.



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

pod "PagedAlertController"


PagedAlertController presents a user defined view (300×200 by default) in a alert style modal, adding pages and bullets.

By itself in only adds navigating functionality, validation and content design is user defined.

  • Import files in Reusable components of xcode file group
  • Create two view controller in story board assign to one them the PagedAlertController class.
  • In the remaining view controller import PagedAlertController.h and implement protocols PagedAlertDelegate and PagedAlertDataSource.
  • Make shure from the presenting viewcontroller or segue that the presentation style of the PagedAlertController is ‘over current context’.

Detailed Description of Protocols

/* -------------------------- DELEGATE ------------------------- */
@protocol PagedAlertDelegate <NSObject>

-(void)pagedAlert: (UIView*)view didTurnToPageAtIndex:(NSUInteger)pageIndex;
-(void)willStartPagedAlertController:(UIViewController*) pagedController;
-(BOOL)pagedAlert:(UIView*)view shouldFlipToNextPageFromPage:(NSUInteger)integer;
-(BOOL)pagedAlert: (UIView*)view shouldFlipToPreviousPageFromPage:(NSUInteger)integer;

//TODO: especify page index where this happens



/* -------------------------- DATA SOURCE ------------------------- */
@protocol PagedAlertDataSource <NSObject>

-(NSUInteger)numberOfPagesForPagedAlertController: (UIViewController*) pagedController;

//TODO: generalize so the PagedAertView can have a varying size viewForAlertPage:(NSInteger)index contentDimension:(CGRect) frame;
- (UIView *)viewForAlertPage:(NSUInteger)index;



//Change these to properties?

// Not usigin wrap around indexing means the PagedViewController will be dismissed if tapping the previous button on first page
//or the next button on final page.
//Used to validate input
-(UIView*)updateViewOnPageFlipForwardRejection:(UIView*)view pageIndex:(NSUInteger)index;
-(UIView*)updateViewOnPageFlipBackwardRejection:(UIView*)view pageIndex:(NSUInteger)index;
//An array of strings indicating the button titles for each page (should have equal length to number of pages)


/* -------------------------- INTERFACE ------------------------- */
@interface PagedAlertViewController : UIViewController


@property (strong,nonatomic) UIColor* bulletColor;
@property (strong,nonatomic) UIColor* pageControlBackgroundColor;
@property (strong,nonatomic) UIPageControl* pageControl;

@property (weak,nonatomic) id<PagedAlertDelegate> delegate;
@property (weak,nonatomic) id<PagedAlertDataSource> dataSource;



  • Create a cocoapod once polished
  • Make UITapGestureRecognizer dismiss the PagedAlertController when tapped on outer area.
  • Remove UIPageViewController bounce
  • Define constraints on PageAlertView xib
  • Generalize content view data source method so a PagedAlertController of any size may be constructed.
  • Add other visual options like chosing a blurred background etc.
  • FIX: BUtton user interaction area gets reduced when an icon is added to the button.
  • FIX: Views added throught storyboard dont get centered in container (innerContentView e.g page 6) but views added programatically do.



Daniel Cardona Rojas, [email protected]


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

Latest podspec

    "name": "PagedAlertController",
    "version": "0.1.7",
    "summary": "An alert like paged controller with custom content",
    "description": "Provides an Alert style embeded in a UIPageViewController with a data source and delegate protocol for configuration and response.",
    "homepage": "",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    "authors": {
        "Daniel Cardona Rojas": "[email protected]"
    "source": {
        "git": "",
        "tag": "0.1.7"
    "platforms": {
        "ios": "7.0"
    "source_files": "PagedAlertController/Classes/**/*.{h,m}",
    "resource_bundles": {
        "PagedAlertController": [

Pin It on Pinterest

Share This