From c8240bbf5d0e52b870df8cba23aea119667e4a84 Mon Sep 17 00:00:00 2001 From: Mike Enriquez Date: Mon, 13 Feb 2012 11:57:42 -0500 Subject: [PATCH] Add UINavigationController example. --- .../project.pbxproj | 12 +++ ECSlidingViewController/MenuViewController.m | 2 +- .../NavigationTopViewController.h | 16 ++++ .../NavigationTopViewController.m | 36 +++++++++ .../SampleTableViewController.h | 14 ++++ .../SampleTableViewController.m | 46 +++++++++++ ECSlidingViewController/iPad.storyboard | 71 ++++++++++++++++- ECSlidingViewController/iPhone.storyboard | 77 ++++++++++++++++++- 8 files changed, 271 insertions(+), 3 deletions(-) create mode 100644 ECSlidingViewController/NavigationTopViewController.h create mode 100644 ECSlidingViewController/NavigationTopViewController.m create mode 100644 ECSlidingViewController/SampleTableViewController.h create mode 100644 ECSlidingViewController/SampleTableViewController.m diff --git a/ECSlidingViewController.xcodeproj/project.pbxproj b/ECSlidingViewController.xcodeproj/project.pbxproj index 9876e1d..84731a6 100644 --- a/ECSlidingViewController.xcodeproj/project.pbxproj +++ b/ECSlidingViewController.xcodeproj/project.pbxproj @@ -8,6 +8,8 @@ /* Begin PBXBuildFile section */ 27407EEC14D8787E0035FD7F /* iPad.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 27407EEB14D8787E0035FD7F /* iPad.storyboard */; }; + 27498DCE14E96C75005C043E /* NavigationTopViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 27498DCD14E96C75005C043E /* NavigationTopViewController.m */; }; + 27498DD514E96EEF005C043E /* SampleTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 27498DD414E96EEF005C043E /* SampleTableViewController.m */; }; 2750E77114CDB0DF007727A0 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2750E77014CDB0DF007727A0 /* UIKit.framework */; }; 2750E77314CDB0DF007727A0 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2750E77214CDB0DF007727A0 /* Foundation.framework */; }; 2750E77514CDB0DF007727A0 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2750E77414CDB0DF007727A0 /* CoreGraphics.framework */; }; @@ -28,6 +30,10 @@ /* Begin PBXFileReference section */ 27407EEB14D8787E0035FD7F /* iPad.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = iPad.storyboard; sourceTree = ""; }; + 27498DCC14E96C75005C043E /* NavigationTopViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NavigationTopViewController.h; sourceTree = ""; }; + 27498DCD14E96C75005C043E /* NavigationTopViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NavigationTopViewController.m; sourceTree = ""; }; + 27498DD314E96EEF005C043E /* SampleTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SampleTableViewController.h; sourceTree = ""; }; + 27498DD414E96EEF005C043E /* SampleTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SampleTableViewController.m; sourceTree = ""; }; 2750E76C14CDB0DF007727A0 /* ECSlidingViewController.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ECSlidingViewController.app; sourceTree = BUILT_PRODUCTS_DIR; }; 2750E77014CDB0DF007727A0 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; 2750E77214CDB0DF007727A0 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; @@ -143,6 +149,10 @@ 27FC94DF14D0C14E0000B18C /* InitialSlidingViewController.m */, 2750E79214CDB93A007727A0 /* MenuViewController.h */, 2750E79314CDB93A007727A0 /* MenuViewController.m */, + 27498DCC14E96C75005C043E /* NavigationTopViewController.h */, + 27498DCD14E96C75005C043E /* NavigationTopViewController.m */, + 27498DD314E96EEF005C043E /* SampleTableViewController.h */, + 27498DD414E96EEF005C043E /* SampleTableViewController.m */, 2750E79814CDB99A007727A0 /* SecondTopViewController.h */, 2750E79914CDB99A007727A0 /* SecondTopViewController.m */, 2750E79B14CDBA48007727A0 /* ThirdTopViewController.h */, @@ -238,6 +248,8 @@ 2750E7AE14CF1306007727A0 /* ECSlidingViewController.m in Sources */, 2750E7AF14CF1306007727A0 /* UIImage+ImageWithUIView.m in Sources */, 27FC94E014D0C14E0000B18C /* InitialSlidingViewController.m in Sources */, + 27498DCE14E96C75005C043E /* NavigationTopViewController.m in Sources */, + 27498DD514E96EEF005C043E /* SampleTableViewController.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/ECSlidingViewController/MenuViewController.m b/ECSlidingViewController/MenuViewController.m index 15c698f..7922c5e 100644 --- a/ECSlidingViewController/MenuViewController.m +++ b/ECSlidingViewController/MenuViewController.m @@ -17,7 +17,7 @@ - (void)awakeFromNib { - self.menuItems = [NSArray arrayWithObjects:@"First", @"Second", @"Third", nil]; + self.menuItems = [NSArray arrayWithObjects:@"First", @"Second", @"Third", @"Navigation", nil]; } - (void)viewDidLoad diff --git a/ECSlidingViewController/NavigationTopViewController.h b/ECSlidingViewController/NavigationTopViewController.h new file mode 100644 index 0000000..2956940 --- /dev/null +++ b/ECSlidingViewController/NavigationTopViewController.h @@ -0,0 +1,16 @@ +// +// NavigationTopViewController.h +// ECSlidingViewController +// +// Created by Michael Enriquez on 2/13/12. +// Copyright (c) 2012 EdgeCase. All rights reserved. +// + +#import +#import "ECSlidingViewController.h" +#import "MenuViewController.h" +#import "UnderRightViewController.h" + +@interface NavigationTopViewController : UINavigationController + +@end diff --git a/ECSlidingViewController/NavigationTopViewController.m b/ECSlidingViewController/NavigationTopViewController.m new file mode 100644 index 0000000..9f1bfec --- /dev/null +++ b/ECSlidingViewController/NavigationTopViewController.m @@ -0,0 +1,36 @@ +// +// NavigationTopViewController.m +// ECSlidingViewController +// +// Created by Michael Enriquez on 2/13/12. +// Copyright (c) 2012 EdgeCase. All rights reserved. +// + +#import "NavigationTopViewController.h" + +@implementation NavigationTopViewController + +- (void)viewWillAppear:(BOOL)animated +{ + [super viewWillAppear:animated]; + + UIStoryboard *storyboard; + + if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) { + storyboard = [UIStoryboard storyboardWithName:@"iPhone" bundle:nil]; + } else if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { + storyboard = [UIStoryboard storyboardWithName:@"iPad" bundle:nil]; + } + + if (![self.slidingViewController.underLeftViewController isKindOfClass:[MenuViewController class]]) { + self.slidingViewController.underLeftViewController = [storyboard instantiateViewControllerWithIdentifier:@"Menu"]; + } + + if (![self.slidingViewController.underRightViewController isKindOfClass:[UnderRightViewController class]]) { + self.slidingViewController.underRightViewController = [storyboard instantiateViewControllerWithIdentifier:@"UnderRight"]; + } + + [self.view addGestureRecognizer:self.slidingViewController.panGesture]; +} + +@end diff --git a/ECSlidingViewController/SampleTableViewController.h b/ECSlidingViewController/SampleTableViewController.h new file mode 100644 index 0000000..740d48f --- /dev/null +++ b/ECSlidingViewController/SampleTableViewController.h @@ -0,0 +1,14 @@ +// +// SampleTableViewController.h +// ECSlidingViewController +// +// Created by Michael Enriquez on 2/13/12. +// Copyright (c) 2012 EdgeCase. All rights reserved. +// + +#import +#import "ECSlidingViewController.h" + +@interface SampleTableViewController : UITableViewController +- (IBAction)revealMenu:(id)sender; +@end diff --git a/ECSlidingViewController/SampleTableViewController.m b/ECSlidingViewController/SampleTableViewController.m new file mode 100644 index 0000000..8215589 --- /dev/null +++ b/ECSlidingViewController/SampleTableViewController.m @@ -0,0 +1,46 @@ +// +// SampleTableViewController.m +// ECSlidingViewController +// +// Created by Michael Enriquez on 2/13/12. +// Copyright (c) 2012 EdgeCase. All rights reserved. +// + +#import "SampleTableViewController.h" + +@interface SampleTableViewController() +@property (nonatomic, strong) NSArray *sampleItems; +@end + +@implementation SampleTableViewController +@synthesize sampleItems; + +- (void)awakeFromNib +{ + self.sampleItems = [NSArray arrayWithObjects:@"One", @"Two", @"Three", nil]; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)sectionIndex +{ + return self.sampleItems.count; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath +{ + NSString *cellIdentifier = @"SampleCell"; + UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; + if (cell == nil) { + cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier]; + } + + cell.textLabel.text = [self.sampleItems objectAtIndex:indexPath.row]; + + return cell; +} + +- (IBAction)revealMenu:(id)sender +{ + [self.slidingViewController anchorTopViewTo:ECRight animations:nil onComplete:nil]; +} + +@end diff --git a/ECSlidingViewController/iPad.storyboard b/ECSlidingViewController/iPad.storyboard index 772ea41..e2d6568 100644 --- a/ECSlidingViewController/iPad.storyboard +++ b/ECSlidingViewController/iPad.storyboard @@ -1,5 +1,5 @@ - + @@ -85,6 +85,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -197,6 +257,15 @@ + + + + + + + + + diff --git a/ECSlidingViewController/iPhone.storyboard b/ECSlidingViewController/iPhone.storyboard index fcca7e2..20990c0 100644 --- a/ECSlidingViewController/iPhone.storyboard +++ b/ECSlidingViewController/iPhone.storyboard @@ -1,5 +1,5 @@ - + @@ -68,6 +68,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -208,6 +274,15 @@ + + + + + + + + +