From 6807c0455cfea6af76cf6fc2d82f2b5338a135f4 Mon Sep 17 00:00:00 2001 From: Yann LIANG Date: Thu, 24 Jan 2013 20:18:09 +0800 Subject: [PATCH 1/6] Change selectedIndex to selectedIndexPath, support section for PaperFoldMenuController. --- .DS_Store | Bin 0 -> 6148 bytes Demo/.DS_Store | Bin 0 -> 6148 bytes .../contents.xcworkspacedata | 7 + .../UserInterfaceState.xcuserstate | Bin 0 -> 17038 bytes .../yann.xcuserdatad/xcschemes/Demo.xcscheme | 86 +++++++++++ .../xcschemes/xcschememanagement.plist | 22 +++ Demo/Demo/AppDelegate.m | 28 +++- Demo/Demo/DemoMenuController.m | 4 +- .../PaperFoldMenuController.h | 3 +- .../PaperFoldMenuController.m | 141 +++++++++++++++--- 10 files changed, 267 insertions(+), 24 deletions(-) create mode 100644 .DS_Store create mode 100644 Demo/.DS_Store create mode 100644 Demo/Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Demo/Demo.xcodeproj/project.xcworkspace/xcuserdata/yann.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 Demo/Demo.xcodeproj/xcuserdata/yann.xcuserdatad/xcschemes/Demo.xcscheme create mode 100644 Demo/Demo.xcodeproj/xcuserdata/yann.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..a9a879d7d07bdb90d5dec2ff7e79b07db6702d65 GIT binary patch literal 6148 zcmeHK%}T>S5T3PFQ&i|h>~Zm2q*ZHs@DO4ZFG8V(9;|3W3N3`BGzmS_Xz&$$5Z}h< zab|Zd6mu4_GqC&3&d+YE^{%xhP z!VEA2%m6d6!3>yV!rI$l4!Cq?fEg%efc6K8jnFojYgAhYcIpX$SVprF)afljIntnQ zFxQA46rocQb*eB=458D}E=`Lrz`r20W8DI((4wp|h}h-i)`$kLe*F;7k%x$_Ljy2b@PQbRqpbUm@qUo=VX zr&N${hrAE-ALs#=yZf8vy6L;YlHcvW^6&am+U=$xdO3gUH0sm!yT1LA|8RSl&$Fc! zIv5BBf`MQl82CN|xU)s(Cx)SefnXpQcxOP)hlD1W9jl=p9Z*^V0Oc92g1*!e5|bRW zV>QGKge??kq3k6FTR7~={jy^ + + + + diff --git a/Demo/Demo.xcodeproj/project.xcworkspace/xcuserdata/yann.xcuserdatad/UserInterfaceState.xcuserstate b/Demo/Demo.xcodeproj/project.xcworkspace/xcuserdata/yann.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..62b708835d7713f45ec56a0f095df2051ac8db4f GIT binary patch literal 17038 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 c(yr2rOD`|oET(4+BYtvA`%>AykJ4-ZAHuyz + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Demo/Demo.xcodeproj/xcuserdata/yann.xcuserdatad/xcschemes/xcschememanagement.plist b/Demo/Demo.xcodeproj/xcuserdata/yann.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..25efddf --- /dev/null +++ b/Demo/Demo.xcodeproj/xcuserdata/yann.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + Demo.xcscheme + + orderHint + 0 + + + SuppressBuildableAutocreation + + F8938452163AD2BE0085C3BB + + primary + + + + + diff --git a/Demo/Demo/AppDelegate.m b/Demo/Demo/AppDelegate.m index f163eab..652bb1e 100644 --- a/Demo/Demo/AppDelegate.m +++ b/Demo/Demo/AppDelegate.m @@ -22,14 +22,36 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:( NSMutableArray *viewControllers = [NSMutableArray array]; - for (int i=0; i<8; i++) + NSMutableArray *viewControllerA = [NSMutableArray array]; + NSMutableArray *viewControllerB = [NSMutableArray array]; + NSMutableArray *viewControllerC = [NSMutableArray array]; + + for (int i=0; i<3; i++) + { + DemoRootViewController *rootViewController = [[DemoRootViewController alloc] init]; + [rootViewController setTitle:[NSString stringWithFormat:@"Root VC A %i", i+1]]; + UINavigationController *rootNavController = [[UINavigationController alloc] initWithRootViewController:rootViewController]; + [viewControllerA addObject:rootNavController]; + } + [viewControllers addObject:viewControllerA]; + + for (int i=0; i<2; i++) { DemoRootViewController *rootViewController = [[DemoRootViewController alloc] init]; - [rootViewController setTitle:[NSString stringWithFormat:@"Root VC %i", i+1]]; + [rootViewController setTitle:[NSString stringWithFormat:@"Root VC B %i", i+1]]; UINavigationController *rootNavController = [[UINavigationController alloc] initWithRootViewController:rootViewController]; - [viewControllers addObject:rootNavController]; + [viewControllerB addObject:rootNavController]; } + [viewControllers addObject:viewControllerB]; + for (int i=0; i<3; i++) + { + DemoRootViewController *rootViewController = [[DemoRootViewController alloc] init]; + [rootViewController setTitle:[NSString stringWithFormat:@"Root VC C %i", i+1]]; + UINavigationController *rootNavController = [[UINavigationController alloc] initWithRootViewController:rootViewController]; + [viewControllerC addObject:rootNavController]; + } + [viewControllers addObject:viewControllerC]; [_menuController setViewControllers:viewControllers]; diff --git a/Demo/Demo/DemoMenuController.m b/Demo/Demo/DemoMenuController.m index c6365a4..3744626 100644 --- a/Demo/Demo/DemoMenuController.m +++ b/Demo/Demo/DemoMenuController.m @@ -64,10 +64,10 @@ - (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NS } - UIViewController *viewController = self.viewControllers[indexPath.row]; + UIViewController *viewController = self.viewControllers[indexPath.section][indexPath.row]; [cell.textLabel setText:viewController.title]; - if (indexPath.row==self.selectedIndex) + if (indexPath.section==self.selectedIndexPath.section && indexPath.row==self.selectedIndexPath.row) { [tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone]; } diff --git a/PaperFoldMenuController/PaperFoldMenuController.h b/PaperFoldMenuController/PaperFoldMenuController.h index fa10b5d..aee6670 100644 --- a/PaperFoldMenuController/PaperFoldMenuController.h +++ b/PaperFoldMenuController/PaperFoldMenuController.h @@ -51,7 +51,8 @@ /** * Set and return the index of the current view controller */ -@property (nonatomic, assign) NSUInteger selectedIndex; +//@property (nonatomic, assign) NSUInteger selectedIndex; +@property (nonatomic, strong) NSIndexPath *selectedIndexPath; @property (nonatomic, assign, readonly) float menuWidth; @property (nonatomic, assign, readonly) int numberOfFolds; /** diff --git a/PaperFoldMenuController/PaperFoldMenuController.m b/PaperFoldMenuController/PaperFoldMenuController.m index 253d361..b04d988 100644 --- a/PaperFoldMenuController/PaperFoldMenuController.m +++ b/PaperFoldMenuController/PaperFoldMenuController.m @@ -64,38 +64,60 @@ + (BOOL)automaticallyNotifiesObserversOfSelectedViewController + (NSSet *)keyPathsForValuesAffectingSelectedViewController { - return [NSSet setWithObjects:@"selectedIndex", nil]; +// return [NSSet setWithObjects:@"selectedIndex", nil]; + return [NSSet setWithObjects:@"selectedIndexPath", nil]; } - (UIViewController *)selectedViewController { - if (self.selectedIndex == NSNotFound) +// if (self.selectedIndex == NSNotFound) + if (self.selectedIndexPath == nil) { return nil; } else { - return self.viewControllers[self.selectedIndex]; +// return self.viewControllers[self.selectedIndex]; + return self.viewControllers[self.selectedIndexPath.section][self.selectedIndexPath.row]; } } - (void)setSelectedViewController:(UIViewController *)theSelectedViewController { - NSUInteger theSelectedIndex = [self.viewControllers indexOfObject:theSelectedViewController]; +// NSUInteger theSelectedIndex = [self.viewControllers indexOfObject:theSelectedViewController]; - if (theSelectedIndex == NSNotFound) - { +// if (theSelectedIndex == NSNotFound) +// { +// [NSException raise:NSInternalInconsistencyException format:@"Could not selected view controller because it is not registered.\n%@", theSelectedViewController]; +// return; +// } + +// self.selectedIndex = theSelectedIndex; + + NSInteger theSelectedSectionIndex = 0; + NSInteger theSelectedRowIndex = NSNotFound; + for (NSArray *viewControllers in self.viewControllers) { + theSelectedRowIndex = [viewControllers indexOfObject:theSelectedViewController]; + if (theSelectedRowIndex != NSNotFound) { + self.selectedIndexPath = [NSIndexPath indexPathForRow:theSelectedRowIndex inSection:theSelectedSectionIndex]; + break; + } else { + theSelectedSectionIndex ++; + } + } + + if (theSelectedRowIndex == NSNotFound) { [NSException raise:NSInternalInconsistencyException format:@"Could not selected view controller because it is not registered.\n%@", theSelectedViewController]; return; } - - self.selectedIndex = theSelectedIndex; + } + (BOOL)automaticallyNotifiesObserversOfSelectedIndex { return NO; } +/* - (void)setSelectedIndex:(NSUInteger)theSelectedIndex { if (!self.isViewLoaded) @@ -151,9 +173,72 @@ - (void)setSelectedIndex:(NSUInteger)theSelectedIndex } } } +*/ + +- (void)setSelectedIndexPath:(NSIndexPath *)theSelectedIndexPath +{ + if (!self.isViewLoaded) + { + __weak __typeof(*&self) theWeakSelf = self; + [self.viewDidLoadBlocks addObject:[^{ + __strong __typeof(*&self) theStrongSelf = theWeakSelf; + if (theStrongSelf == nil) { + return; + } +// theStrongSelf.selectedIndex = theSelectedIndex; + theStrongSelf.selectedIndexPath = theSelectedIndexPath; + } copy]]; + } + else + { +// NSUInteger theOldSelectedIndex = self.selectedIndex; +// NSUInteger theNewSelectedIndex = theSelectedIndex; + NSIndexPath *theOldSelectedIndexPath = self.selectedIndexPath; + NSIndexPath *theNewSelectedIndexPath = theSelectedIndexPath; + + if (theOldSelectedIndexPath == theNewSelectedIndexPath) { + return; + } + + [self willChangeValueForKey:@"selectedIndex"]; + +// if (theOldSelectedIndex != NSNotFound) + if (theOldSelectedIndexPath != nil) + { + UIViewController *theOldViewController = self.viewControllers[theOldSelectedIndexPath.section][theOldSelectedIndexPath.row]; + [theOldViewController willMoveToParentViewController:nil]; + [theOldViewController.view removeFromSuperview]; + [theOldViewController removeFromParentViewController]; + + [self.menuTableView deselectRowAtIndexPath:[NSIndexPath indexPathForRow:theOldSelectedIndexPath.row inSection:theOldSelectedIndexPath.section] animated:YES]; + } + + _selectedIndexPath = theNewSelectedIndexPath; + +// if (theNewSelectedIndex != NSNotFound) + if (theNewSelectedIndexPath != nil) + { + UIViewController *theNewViewController = self.viewControllers[theNewSelectedIndexPath.section][theNewSelectedIndexPath.row]; + theNewViewController.view.frame = self.contentView.bounds; + [self addChildViewController:theNewViewController]; + [self.contentView addSubview:theNewViewController.view]; + [theNewViewController didMoveToParentViewController:self]; + + [self.menuTableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:theNewSelectedIndexPath.row inSection:theNewSelectedIndexPath.section] animated:YES scrollPosition:UITableViewScrollPositionNone]; + } + + [self didChangeValueForKey:@"selectedIndexPath"]; + + if (self.paperFoldView.state != PaperFoldStateLeftUnfolded) + { + [self reloadMenu]; + } + } +} - (void)commonInit { - _selectedIndex = NSNotFound; +// _selectedIndex = NSNotFound; + _selectedIndexPath = nil; } - (id)initWithMenuWidth:(float)menuWidth numberOfFolds:(int)numberOfFolds @@ -221,20 +306,34 @@ - (void)viewDidLoad theBlock(); } self.viewDidLoadBlocks = nil; + + self.selectedIndexPath = [NSIndexPath indexPathForRow:0 inSection:0]; } - (void)setViewControllers:(NSMutableArray *)viewControllers { - self.selectedIndex = NSNotFound; // Forces any child view controller to be removed. +// self.selectedIndex = NSNotFound; // Forces any child view controller to be removed. + self.selectedIndexPath = nil; // Forces any child view controller to be removed. _viewControllers = viewControllers; - if ([_viewControllers count]>0) [self setSelectedIndex:0]; +// if ([_viewControllers count]>0) [self setSelectedIndex:0]; + if ([_viewControllers count]>0) [self setSelectedIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]]; [self reloadMenu]; } -- (void)addViewController:(UIViewController*)viewController; +//- (void)addViewController:(UIViewController*)viewController; +//{ +// if (!_viewControllers) _viewControllers = [NSMutableArray array]; +// [self.viewControllers addObject:viewController]; +// [self reloadMenu]; +//} + +- (void)addViewController:(UIViewController *)viewController atSectionIndex:(NSInteger)sectionIndex { if (!_viewControllers) _viewControllers = [NSMutableArray array]; - [self.viewControllers addObject:viewController]; + for (int i=0; i <= sectionIndex; i++) { + if (!_viewControllers[i]) _viewControllers[i] = [NSMutableArray array]; + } + [self.viewControllers[sectionIndex] addObject:viewController]; [self reloadMenu]; } @@ -250,10 +349,16 @@ - (void)reloadMenu - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { - if (tableView==self.menuTableView) return [self.viewControllers count]; +// if (tableView==self.menuTableView) return [self.viewControllers count]; + if (tableView==self.menuTableView) return [self.viewControllers[section] count]; else return 0; } +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView +{ + return [self.viewControllers count]; +} + - (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { if (tableView==self.menuTableView) @@ -265,10 +370,10 @@ - (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NS cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier]; } - UIViewController *viewController = self.viewControllers[indexPath.row]; + UIViewController *viewController = self.viewControllers[indexPath.section][indexPath.row]; [cell.textLabel setText:viewController.title]; - if (indexPath.row==self.selectedIndex) + if (indexPath.section==self.selectedIndexPath.section && indexPath.row==self.selectedIndexPath.row) { [tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone]; } @@ -285,11 +390,11 @@ - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath BOOL shouldSelect = YES; if ([self.delegate respondsToSelector:@selector(paperFoldMenuController:shouldSelectViewController:)]) { - shouldSelect = [self.delegate paperFoldMenuController:self shouldSelectViewController:self.viewControllers[indexPath.row]]; + shouldSelect = [self.delegate paperFoldMenuController:self shouldSelectViewController:self.viewControllers[indexPath.section][indexPath.row]]; } if (shouldSelect) { - [self setSelectedIndex:indexPath.row]; + [self setSelectedIndexPath:indexPath]; if ([self.delegate respondsToSelector:@selector(paperFoldMenuController:didSelectViewController:)]) { [self.delegate paperFoldMenuController:self didSelectViewController:self.selectedViewController]; From b26ddc4842e9319839d9d194ce4330e271ee370f Mon Sep 17 00:00:00 2001 From: Yann LIANG Date: Thu, 24 Jan 2013 20:21:28 +0800 Subject: [PATCH 2/6] remove .DS_Store --- .DS_Store | Bin 6148 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .DS_Store diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index a9a879d7d07bdb90d5dec2ff7e79b07db6702d65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK%}T>S5T3PFQ&i|h>~Zm2q*ZHs@DO4ZFG8V(9;|3W3N3`BGzmS_Xz&$$5Z}h< zab|Zd6mu4_GqC&3&d+YE^{%xhP z!VEA2%m6d6!3>yV!rI$l4!Cq?fEg%efc6K8jnFojYgAhYcIpX$SVprF)afljIntnQ zFxQA46rocQb*eB=458D}E=` Date: Thu, 31 Jan 2013 14:59:13 +0800 Subject: [PATCH 3/6] sync --- .../UserInterfaceState.xcuserstate | Bin 17038 -> 19303 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Demo/Demo.xcodeproj/project.xcworkspace/xcuserdata/yann.xcuserdatad/UserInterfaceState.xcuserstate b/Demo/Demo.xcodeproj/project.xcworkspace/xcuserdata/yann.xcuserdatad/UserInterfaceState.xcuserstate index 62b708835d7713f45ec56a0f095df2051ac8db4f..b754d19ecf00fdc1c2bfb243f176a5337034401d 100644 GIT binary patch delta 10559 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 delta 9595 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 From 3edae019c0f472c047ef117ae31d863ea6324060 Mon Sep 17 00:00:00 2001 From: Yann LIANG Date: Mon, 2 Sep 2013 15:32:48 +0800 Subject: [PATCH 4/6] add new view controller methods --- .../UserInterfaceState.xcuserstate | Bin 19303 -> 21746 bytes .../PaperFoldMenuController.h | 5 +++++ .../PaperFoldMenuController.m | 9 +++++++++ 3 files changed, 14 insertions(+) diff --git a/Demo/Demo.xcodeproj/project.xcworkspace/xcuserdata/yann.xcuserdatad/UserInterfaceState.xcuserstate b/Demo/Demo.xcodeproj/project.xcworkspace/xcuserdata/yann.xcuserdatad/UserInterfaceState.xcuserstate index b754d19ecf00fdc1c2bfb243f176a5337034401d..b32009e8d0236265a5e5ac13ca96ddace8864a09 100644 GIT binary patch literal 21746 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 R1^$xn0T2bg27YHx{XaZ_b5{TW diff --git a/PaperFoldMenuController/PaperFoldMenuController.h b/PaperFoldMenuController/PaperFoldMenuController.h index aee6670..5498b7a 100644 --- a/PaperFoldMenuController/PaperFoldMenuController.h +++ b/PaperFoldMenuController/PaperFoldMenuController.h @@ -66,4 +66,9 @@ * @param animated A boolean value to indicate if the folding/unfolding should be animated */ - (void)showMenu:(BOOL)show animated:(BOOL)animated; + +- (void)insertViewController:(UIViewController *)viewController atSectionIndex:(NSInteger)sectionIndex rowIndex:(NSInteger)rowIndex; + +- (void)addViewController:(UIViewController *)viewController atSectionIndex:(NSInteger)sectionIndex; + @end diff --git a/PaperFoldMenuController/PaperFoldMenuController.m b/PaperFoldMenuController/PaperFoldMenuController.m index b04d988..55022dd 100644 --- a/PaperFoldMenuController/PaperFoldMenuController.m +++ b/PaperFoldMenuController/PaperFoldMenuController.m @@ -337,6 +337,15 @@ - (void)addViewController:(UIViewController *)viewController atSectionIndex:(NSI [self reloadMenu]; } +- (void)insertViewController:(UIViewController *)viewController atSectionIndex:(NSInteger)sectionIndex rowIndex:(NSInteger)rowIndex +{ + if (!_viewControllers) _viewControllers = [NSMutableArray array]; + for (int i=0; i <= sectionIndex; i++) { + if (!_viewControllers[i]) _viewControllers[i] = [NSMutableArray array]; + } + [self.viewControllers[sectionIndex] insertObject:viewController atIndex:rowIndex]; +} + - (void)reloadMenu { [self.menuTableView reloadData]; From 2ce2ecb1200f3508024512310847d03830c0d31e Mon Sep 17 00:00:00 2001 From: Yann LIANG Date: Mon, 2 Sep 2013 16:41:44 +0800 Subject: [PATCH 5/6] add remove method --- .../UserInterfaceState.xcuserstate | Bin 21746 -> 21903 bytes .../PaperFoldMenuController.h | 2 ++ .../PaperFoldMenuController.m | 7 +++++++ 3 files changed, 9 insertions(+) diff --git a/Demo/Demo.xcodeproj/project.xcworkspace/xcuserdata/yann.xcuserdatad/UserInterfaceState.xcuserstate b/Demo/Demo.xcodeproj/project.xcworkspace/xcuserdata/yann.xcuserdatad/UserInterfaceState.xcuserstate index b32009e8d0236265a5e5ac13ca96ddace8864a09..e5071dd1699ee868ad79c1d15cf51c55851195d5 100644 GIT binary patch delta 6062 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 delta 5858 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 diff --git a/PaperFoldMenuController/PaperFoldMenuController.h b/PaperFoldMenuController/PaperFoldMenuController.h index 5498b7a..84d9be7 100644 --- a/PaperFoldMenuController/PaperFoldMenuController.h +++ b/PaperFoldMenuController/PaperFoldMenuController.h @@ -71,4 +71,6 @@ - (void)addViewController:(UIViewController *)viewController atSectionIndex:(NSInteger)sectionIndex; +- (void)removeViewControllerAtSectionIndex:(NSInteger)sectionIndex rowIndex:(NSInteger)rowIndex; + @end diff --git a/PaperFoldMenuController/PaperFoldMenuController.m b/PaperFoldMenuController/PaperFoldMenuController.m index 55022dd..92be9c9 100644 --- a/PaperFoldMenuController/PaperFoldMenuController.m +++ b/PaperFoldMenuController/PaperFoldMenuController.m @@ -344,6 +344,13 @@ - (void)insertViewController:(UIViewController *)viewController atSectionIndex:( if (!_viewControllers[i]) _viewControllers[i] = [NSMutableArray array]; } [self.viewControllers[sectionIndex] insertObject:viewController atIndex:rowIndex]; + [self reloadMenu]; +} + +- (void)removeViewControllerAtSectionIndex:(NSInteger)sectionIndex rowIndex:(NSInteger)rowIndex +{ + [_viewControllers[sectionIndex] removeObjectAtIndex:rowIndex]; + [self reloadMenu]; } - (void)reloadMenu From 189fd11fb7935e555ba44085dd87fd66a01b0c1f Mon Sep 17 00:00:00 2001 From: Weiyin LIANG Date: Sun, 4 Jan 2015 14:15:43 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20podspec?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PaperFoldMenuController.podspec | 35 +++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 PaperFoldMenuController.podspec diff --git a/PaperFoldMenuController.podspec b/PaperFoldMenuController.podspec new file mode 100644 index 0000000..9b6ee6b --- /dev/null +++ b/PaperFoldMenuController.podspec @@ -0,0 +1,35 @@ +# +# Be sure to run `pod lib lint PaperFoldMenuController.podspec' to ensure this is a +# valid spec and remove all comments before submitting the spec. +# +# Any lines starting with a # are optional, but encouraged +# +# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html +# + +Pod::Spec.new do |s| + s.name = "PaperFoldMenuController" + s.version = "1.0.1-1.0.1" + s.summary = "Left side menu with paper fold effect" + s.description = <<-DESC + PaperFoldMenuController is a UITabBarController replacement, but displays the view controllers in a table view on the left side of the screen. This table view is shown/hidden using PaperFold-for-iOS. Selecting from the menu on the left changes the view controller on the right. PaperFoldMenuController uses view controller containment. + DESC + s.homepage = "https://github.com/cielliang/PaperFoldMenuController" + # s.screenshots = "www.example.com/screenshots_1", "www.example.com/screenshots_2" + s.license = 'MIT' + s.author = { "hongcheng" => "hongcheng@gmail.com", "Weiyin LIANG" => "weiyin.liang@gmail.com" } + s.source = { :git => "https://github.com/cielliang/PaperFoldMenuController.git", :tag => s.version.to_s } + # s.social_media_url = 'https://twitter.com/' + + s.platform = :ios, '7.0' + s.requires_arc = true + + s.source_files = 'PaperFoldMenuController' + #s.resource_bundles = { + # 'PanelTableView2' => ['Pod/Assets/*.png'] + #} + + # s.public_header_files = 'Pod/Classes/**/*.h' + s.frameworks = 'UIKit' + s.dependency 'PaperFold', '~> 1.1' +end