JCAlertController is same level with UIAlertController.
It is inherited from UIViewController too.
It supports managing presented controllers with FIFO or LIFO.
| Compare | Present Queue | Custom Style | Custom View | Minimum iOS Target |
|---|---|---|---|---|
| JCAlertController | support | simple | simple | iOS 7 |
| UIAlertController | not support | difficult | difficult | iOS 8 |
- support present queue
- support custom style
- support custom contentView
Look at the flowing code:
[self presentWithFIFO:alert1];
[self presentWithFIFO:alert2];
[self presentWithFIFO:alert3];Result:
alert1 shows first, after dismissed by user, alert2 shows second, after dismissed by user, alert3 shows third.
like this: alert1 >> alert2 >> alert3
[self presentWithLIFO:alert1];
[self presentWithLIFO:alert2];
[self presentWithLIFO:alert3];Result:
alert3 shows first, after dismissed by user, alert2 shows second, after dismissed by user, alert1 shows third.
like this alert3 >> alert2 >> alert1
Present queue is powered by JCPresentQueue. It supports cocoapods too.
.
|____.DS_Store
|____AlertView
| |____JCAlertView.h
| |____JCAlertView.m
|____ButtonItem
| |____JCAlertButtonItem.h
| |____JCAlertButtonItem.m
|____Category
| |____NSAttributedString+JCCalculateSize.h
| |____NSAttributedString+JCCalculateSize.m
| |____UIColor+JCHightlightedColor.h
| |____UIColor+JCHightlightedColor.m
| |____UIImage+JCColor2Image.h
| |____UIImage+JCColor2Image.m
| |____UIViewController+JCPresentQueue.h // present category
| |____UIViewController+JCPresentQueue.m
| |____UIWindow+JCBlur.h
| |____UIWindow+JCBlur.m
|____JCAlertController.h // import this
|____JCAlertController.m
|____Style
| |____JCAlertStyle.h
| |____JCAlertStyle.m
| |____JCAlertStyleAlertView.h
| |____JCAlertStyleAlertView.m
| |____JCAlertStyleBackground.h
| |____JCAlertStyleBackground.m
| |____JCAlertStyleButton.h
| |____JCAlertStyleButton.m
| |____JCAlertStyleButtonCancel.h
| |____JCAlertStyleButtonCancel.m
| |____JCAlertStyleButtonNormal.h
| |____JCAlertStyleButtonNormal.m
| |____JCAlertStyleButtonWarning.h
| |____JCAlertStyleButtonWarning.m
| |____JCAlertStyleContent.h
| |____JCAlertStyleContent.m
| |____JCAlertStyleSeparator.h
| |____JCAlertStyleSeparator.m
| |____JCAlertStyleTitle.h
| |____JCAlertStyleTitle.mstep 1
platform :ios, '7.0'
target 'your target' do
pod 'JCAlertController'
endstep 2
#import "JCAlertController.h"// LIFO: alert3 >> alert2 >> alert1
for (int i = 1; i<4; i++) {
JCAlertController *alert = [JCAlertController alertWithTitle:[NSString stringWithFormat:@"alert%zi", i] message:nil];
[alert addButtonWithTitle:@"OK" type:JCButtonTypeNormal clicked:nil];
[self jc_presentViewController:alert presentCompletion:nil dismissCompletion:nil];
}E-mail: hjaycee@163.com
Blog: http://www.jianshu.com/u/8bde69945e50