- Initial Commot
This commit is contained in:
parent
1edb69f4f1
commit
fa1a11995c
|
|
@ -18,12 +18,18 @@
|
|||
15371EF91728E3B400A508F4 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 15371EF81728E3B400A508F4 /* Default-568h@2x.png */; };
|
||||
15371EFC1728E3B400A508F4 /* MainStoryboard_iPhone.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 15371EFA1728E3B400A508F4 /* MainStoryboard_iPhone.storyboard */; };
|
||||
15371EFF1728E3B400A508F4 /* MainStoryboard_iPad.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 15371EFD1728E3B400A508F4 /* MainStoryboard_iPad.storyboard */; };
|
||||
15371F021728E3B400A508F4 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 15371F011728E3B400A508F4 /* ViewController.m */; };
|
||||
15371F0A1728E3B400A508F4 /* SenTestingKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 15371F091728E3B400A508F4 /* SenTestingKit.framework */; };
|
||||
15371F0B1728E3B400A508F4 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 15371EE21728E3B400A508F4 /* UIKit.framework */; };
|
||||
15371F0C1728E3B400A508F4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 15371EE41728E3B400A508F4 /* Foundation.framework */; };
|
||||
15371F141728E3B400A508F4 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 15371F121728E3B400A508F4 /* InfoPlist.strings */; };
|
||||
15371F171728E3B400A508F4 /* SlideMenuTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 15371F161728E3B400A508F4 /* SlideMenuTests.m */; };
|
||||
15371F281728E44E00A508F4 /* SlideNavigationController.m in Sources */ = {isa = PBXBuildFile; fileRef = 15371F271728E44E00A508F4 /* SlideNavigationController.m */; };
|
||||
15CBD67C172A15F900F0C53E /* HomeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 15CBD677172A15F900F0C53E /* HomeViewController.m */; };
|
||||
15CBD67D172A15F900F0C53E /* MenuViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 15CBD679172A15F900F0C53E /* MenuViewController.m */; };
|
||||
15CBD67E172A15F900F0C53E /* ProfileViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 15CBD67B172A15F900F0C53E /* ProfileViewController.m */; };
|
||||
15CBD684172A20DA00F0C53E /* left-menu-button.png in Resources */ = {isa = PBXBuildFile; fileRef = 15CBD682172A20DA00F0C53E /* left-menu-button.png */; };
|
||||
15CBD685172A20DA00F0C53E /* right-menu-button.png in Resources */ = {isa = PBXBuildFile; fileRef = 15CBD683172A20DA00F0C53E /* right-menu-button.png */; };
|
||||
15CBD689172A22B700F0C53E /* ProfileDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 15CBD688172A22B700F0C53E /* ProfileDetailViewController.m */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
|
|
@ -52,14 +58,24 @@
|
|||
15371EF81728E3B400A508F4 /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = "<group>"; };
|
||||
15371EFB1728E3B400A508F4 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = en; path = en.lproj/MainStoryboard_iPhone.storyboard; sourceTree = "<group>"; };
|
||||
15371EFE1728E3B400A508F4 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = en; path = en.lproj/MainStoryboard_iPad.storyboard; sourceTree = "<group>"; };
|
||||
15371F001728E3B400A508F4 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
|
||||
15371F011728E3B400A508F4 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; };
|
||||
15371F081728E3B400A508F4 /* SlideMenuTests.octest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SlideMenuTests.octest; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
15371F091728E3B400A508F4 /* SenTestingKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SenTestingKit.framework; path = Library/Frameworks/SenTestingKit.framework; sourceTree = DEVELOPER_DIR; };
|
||||
15371F111728E3B400A508F4 /* SlideMenuTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "SlideMenuTests-Info.plist"; sourceTree = "<group>"; };
|
||||
15371F131728E3B400A508F4 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
15371F151728E3B400A508F4 /* SlideMenuTests.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SlideMenuTests.h; sourceTree = "<group>"; };
|
||||
15371F161728E3B400A508F4 /* SlideMenuTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SlideMenuTests.m; sourceTree = "<group>"; };
|
||||
15371F261728E44E00A508F4 /* SlideNavigationController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SlideNavigationController.h; sourceTree = "<group>"; };
|
||||
15371F271728E44E00A508F4 /* SlideNavigationController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SlideNavigationController.m; sourceTree = "<group>"; };
|
||||
15CBD676172A15F900F0C53E /* HomeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HomeViewController.h; sourceTree = "<group>"; };
|
||||
15CBD677172A15F900F0C53E /* HomeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HomeViewController.m; sourceTree = "<group>"; };
|
||||
15CBD678172A15F900F0C53E /* MenuViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MenuViewController.h; sourceTree = "<group>"; };
|
||||
15CBD679172A15F900F0C53E /* MenuViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MenuViewController.m; sourceTree = "<group>"; };
|
||||
15CBD67A172A15F900F0C53E /* ProfileViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProfileViewController.h; sourceTree = "<group>"; };
|
||||
15CBD67B172A15F900F0C53E /* ProfileViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ProfileViewController.m; sourceTree = "<group>"; };
|
||||
15CBD682172A20DA00F0C53E /* left-menu-button.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "left-menu-button.png"; sourceTree = "<group>"; };
|
||||
15CBD683172A20DA00F0C53E /* right-menu-button.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "right-menu-button.png"; sourceTree = "<group>"; };
|
||||
15CBD687172A22B600F0C53E /* ProfileDetailViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProfileDetailViewController.h; sourceTree = "<group>"; };
|
||||
15CBD688172A22B700F0C53E /* ProfileDetailViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ProfileDetailViewController.m; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
|
|
@ -119,12 +135,12 @@
|
|||
15371EE81728E3B400A508F4 /* SlideMenu */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
15CBD675172A15F900F0C53E /* Helper Classes */,
|
||||
15371F241728E43600A508F4 /* Source */,
|
||||
15371EF11728E3B400A508F4 /* AppDelegate.h */,
|
||||
15371EF21728E3B400A508F4 /* AppDelegate.m */,
|
||||
15371EFA1728E3B400A508F4 /* MainStoryboard_iPhone.storyboard */,
|
||||
15371EFD1728E3B400A508F4 /* MainStoryboard_iPad.storyboard */,
|
||||
15371F001728E3B400A508F4 /* ViewController.h */,
|
||||
15371F011728E3B400A508F4 /* ViewController.m */,
|
||||
15371EE91728E3B400A508F4 /* Supporting Files */,
|
||||
);
|
||||
path = SlideMenu;
|
||||
|
|
@ -163,6 +179,40 @@
|
|||
name = "Supporting Files";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
15371F241728E43600A508F4 /* Source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
15CBD681172A209500F0C53E /* Assets */,
|
||||
15371F261728E44E00A508F4 /* SlideNavigationController.h */,
|
||||
15371F271728E44E00A508F4 /* SlideNavigationController.m */,
|
||||
);
|
||||
path = Source;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
15CBD675172A15F900F0C53E /* Helper Classes */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
15CBD676172A15F900F0C53E /* HomeViewController.h */,
|
||||
15CBD677172A15F900F0C53E /* HomeViewController.m */,
|
||||
15CBD678172A15F900F0C53E /* MenuViewController.h */,
|
||||
15CBD679172A15F900F0C53E /* MenuViewController.m */,
|
||||
15CBD67A172A15F900F0C53E /* ProfileViewController.h */,
|
||||
15CBD67B172A15F900F0C53E /* ProfileViewController.m */,
|
||||
15CBD687172A22B600F0C53E /* ProfileDetailViewController.h */,
|
||||
15CBD688172A22B700F0C53E /* ProfileDetailViewController.m */,
|
||||
);
|
||||
path = "Helper Classes";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
15CBD681172A209500F0C53E /* Assets */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
15CBD682172A20DA00F0C53E /* left-menu-button.png */,
|
||||
15CBD683172A20DA00F0C53E /* right-menu-button.png */,
|
||||
);
|
||||
path = Assets;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
|
|
@ -240,6 +290,8 @@
|
|||
15371EF91728E3B400A508F4 /* Default-568h@2x.png in Resources */,
|
||||
15371EFC1728E3B400A508F4 /* MainStoryboard_iPhone.storyboard in Resources */,
|
||||
15371EFF1728E3B400A508F4 /* MainStoryboard_iPad.storyboard in Resources */,
|
||||
15CBD684172A20DA00F0C53E /* left-menu-button.png in Resources */,
|
||||
15CBD685172A20DA00F0C53E /* right-menu-button.png in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
@ -276,7 +328,11 @@
|
|||
files = (
|
||||
15371EEF1728E3B400A508F4 /* main.m in Sources */,
|
||||
15371EF31728E3B400A508F4 /* AppDelegate.m in Sources */,
|
||||
15371F021728E3B400A508F4 /* ViewController.m in Sources */,
|
||||
15371F281728E44E00A508F4 /* SlideNavigationController.m in Sources */,
|
||||
15CBD67C172A15F900F0C53E /* HomeViewController.m in Sources */,
|
||||
15CBD67D172A15F900F0C53E /* MenuViewController.m in Sources */,
|
||||
15CBD67E172A15F900F0C53E /* ProfileViewController.m in Sources */,
|
||||
15CBD689172A22B700F0C53E /* ProfileDetailViewController.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
@ -460,6 +516,7 @@
|
|||
15371F1C1728E3B400A508F4 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
15371F1D1728E3B400A508F4 /* Build configuration list for PBXNativeTarget "SlideMenuTests" */ = {
|
||||
isa = XCConfigurationList;
|
||||
|
|
@ -468,6 +525,7 @@
|
|||
15371F1F1728E3B400A508F4 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@
|
|||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "SlideNavigationController.h"
|
||||
#import "MenuViewController.h"
|
||||
|
||||
@interface AppDelegate : UIResponder <UIApplicationDelegate>
|
||||
|
||||
|
|
|
|||
|
|
@ -12,6 +12,18 @@
|
|||
|
||||
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
|
||||
{
|
||||
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone"
|
||||
bundle: nil];
|
||||
|
||||
MenuViewController *rightMenu = (MenuViewController*)[mainStoryboard
|
||||
instantiateViewControllerWithIdentifier: @"MenuViewController"];
|
||||
|
||||
MenuViewController *leftMenu = (MenuViewController*)[mainStoryboard
|
||||
instantiateViewControllerWithIdentifier: @"MenuViewController"];
|
||||
|
||||
[SlideNavigationController sharedInstance].righMenu = rightMenu;
|
||||
[SlideNavigationController sharedInstance].leftMenu = leftMenu;
|
||||
|
||||
// Override point for customization after application launch.
|
||||
return YES;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,14 @@
|
|||
//
|
||||
// HomeViewController.h
|
||||
// SlideMenu
|
||||
//
|
||||
// Created by Aryan Gh on 4/24/13.
|
||||
// Copyright (c) 2013 Aryan Ghassemi. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "SlideNavigationController.h"
|
||||
|
||||
@interface HomeViewController : UIViewController <SlideNavigationControllerDelegate>
|
||||
|
||||
@end
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
//
|
||||
// HomeViewController.m
|
||||
// SlideMenu
|
||||
//
|
||||
// Created by Aryan Gh on 4/24/13.
|
||||
// Copyright (c) 2013 Aryan Ghassemi. All rights reserved.
|
||||
//
|
||||
|
||||
#import "HomeViewController.h"
|
||||
|
||||
@implementation HomeViewController
|
||||
|
||||
- (void)viewDidLoad
|
||||
{
|
||||
[super viewDidLoad];
|
||||
}
|
||||
|
||||
#pragma mark - SlideNavigationController Methods -
|
||||
|
||||
- (BOOL)slideNavigationControllerShouldSisplayLeftMenu
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (BOOL)slideNavigationControllerShouldSisplayRightMenu
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
//
|
||||
// ViewController.h
|
||||
// MenuViewController.h
|
||||
// SlideMenu
|
||||
//
|
||||
// Created by Aryan Gh on 4/24/13.
|
||||
|
|
@ -7,7 +7,9 @@
|
|||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "SlideNavigationController.h"
|
||||
|
||||
@interface MenuViewController : UIViewController <UITableViewDelegate>
|
||||
|
||||
@interface ViewController : UIViewController
|
||||
|
||||
@end
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
//
|
||||
// MenuViewController.m
|
||||
// SlideMenu
|
||||
//
|
||||
// Created by Aryan Gh on 4/24/13.
|
||||
// Copyright (c) 2013 Aryan Ghassemi. All rights reserved.
|
||||
//
|
||||
|
||||
#import "MenuViewController.h"
|
||||
|
||||
@implementation MenuViewController
|
||||
|
||||
#pragma mark - UITableView Delegate & Datasrouce -
|
||||
|
||||
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
|
||||
{
|
||||
return 3;
|
||||
}
|
||||
|
||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
|
||||
{
|
||||
static NSString *identifier = @"menuCell";
|
||||
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
|
||||
|
||||
switch (indexPath.row)
|
||||
{
|
||||
case 0:
|
||||
cell.detailTextLabel.text = @"Home";
|
||||
break;
|
||||
|
||||
case 1:
|
||||
cell.detailTextLabel.text = @"Profile";
|
||||
break;
|
||||
|
||||
case 2:
|
||||
cell.detailTextLabel.text = @"Friends";
|
||||
break;
|
||||
}
|
||||
|
||||
return cell;
|
||||
}
|
||||
|
||||
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
|
||||
{
|
||||
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone"
|
||||
bundle: nil];
|
||||
|
||||
UIViewController *vc = (MenuViewController*)[mainStoryboard
|
||||
instantiateViewControllerWithIdentifier: @"ProfileViewController"];
|
||||
|
||||
[[SlideNavigationController sharedInstance] switchViewController:vc withCompletion:nil];
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
//
|
||||
// ProfileDetailViewController.h
|
||||
// SlideMenu
|
||||
//
|
||||
// Created by Aryan Gh on 4/25/13.
|
||||
// Copyright (c) 2013 Aryan Ghassemi. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "SlideNavigationController.h"
|
||||
|
||||
@interface ProfileDetailViewController : UIViewController <SlideNavigationControllerDelegate>
|
||||
|
||||
@end
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
//
|
||||
// ProfileDetailViewController.m
|
||||
// SlideMenu
|
||||
//
|
||||
// Created by Aryan Gh on 4/25/13.
|
||||
// Copyright (c) 2013 Aryan Ghassemi. All rights reserved.
|
||||
//
|
||||
|
||||
#import "ProfileDetailViewController.h"
|
||||
|
||||
@implementation ProfileDetailViewController
|
||||
|
||||
- (void)viewDidLoad
|
||||
{
|
||||
[super viewDidLoad];
|
||||
}
|
||||
|
||||
#pragma mark - SlideNavigationController Methods -
|
||||
|
||||
- (BOOL)slideNavigationControllerShouldSisplayLeftMenu
|
||||
{
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (BOOL)slideNavigationControllerShouldSisplayRightMenu
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
//
|
||||
// ProfileViewController.h
|
||||
// SlideMenu
|
||||
//
|
||||
// Created by Aryan Gh on 4/24/13.
|
||||
// Copyright (c) 2013 Aryan Ghassemi. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "SlideNavigationController.h"
|
||||
|
||||
@interface ProfileViewController : UIViewController <SlideNavigationControllerDelegate>
|
||||
|
||||
@end
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
//
|
||||
// ProfileViewController.m
|
||||
// SlideMenu
|
||||
//
|
||||
// Created by Aryan Gh on 4/24/13.
|
||||
// Copyright (c) 2013 Aryan Ghassemi. All rights reserved.
|
||||
//
|
||||
|
||||
#import "ProfileViewController.h"
|
||||
|
||||
@implementation ProfileViewController
|
||||
|
||||
- (void)viewDidLoad
|
||||
{
|
||||
[super viewDidLoad];
|
||||
}
|
||||
|
||||
#pragma mark - SlideNavigationController Methods -
|
||||
|
||||
- (BOOL)slideNavigationControllerShouldSisplayLeftMenu
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (BOOL)slideNavigationControllerShouldSisplayRightMenu
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
|
||||
@end
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 9.0 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 9.0 KiB |
|
|
@ -0,0 +1,25 @@
|
|||
//
|
||||
// SlideNavigationController.h
|
||||
// SlideMenu
|
||||
//
|
||||
// Created by Aryan Gh on 4/24/13.
|
||||
// Copyright (c) 2013 Aryan Ghassemi. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@protocol SlideNavigationControllerDelegate <NSObject>
|
||||
@optional
|
||||
- (BOOL)slideNavigationControllerShouldSisplayRightMenu;
|
||||
- (BOOL)slideNavigationControllerShouldSisplayLeftMenu;
|
||||
@end
|
||||
|
||||
@interface SlideNavigationController : UINavigationController <UINavigationControllerDelegate>
|
||||
|
||||
@property (nonatomic, strong) UIViewController *righMenu;
|
||||
@property (nonatomic, strong) UIViewController *leftMenu;
|
||||
|
||||
+ (SlideNavigationController *)sharedInstance;
|
||||
- (void)switchViewController:(UIViewController *)viewController withCompletion:(void (^)())completion;
|
||||
|
||||
@end
|
||||
|
|
@ -0,0 +1,174 @@
|
|||
//
|
||||
// SlideNavigationController.m
|
||||
// SlideMenu
|
||||
//
|
||||
// Created by Aryan Gh on 4/24/13.
|
||||
// Copyright (c) 2013 Aryan Ghassemi. All rights reserved.
|
||||
//
|
||||
|
||||
#import "SlideNavigationController.h"
|
||||
|
||||
@implementation SlideNavigationController
|
||||
@synthesize righMenu;
|
||||
@synthesize leftMenu;
|
||||
|
||||
#define MENU_OFFSET 60
|
||||
#define MENU_SLIDE_ANIMATION_DURATION 0.3
|
||||
|
||||
static SlideNavigationController *singletonInstance;
|
||||
|
||||
#pragma mark - Initialization -
|
||||
|
||||
+ (SlideNavigationController *)sharedInstance
|
||||
{
|
||||
return singletonInstance;
|
||||
}
|
||||
|
||||
- (void)awakeFromNib
|
||||
{
|
||||
singletonInstance = self;
|
||||
self.delegate = self;
|
||||
}
|
||||
|
||||
- (id)init
|
||||
{
|
||||
if (self = [super init])
|
||||
{
|
||||
singletonInstance = self;
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
#pragma mark - Public Methods -
|
||||
|
||||
- (void)switchViewController:(UIViewController *)viewController withCompletion:(void (^)())completion
|
||||
{
|
||||
__block CGRect rect = self.view.frame;
|
||||
|
||||
if ([self isMenuOpen])
|
||||
{
|
||||
[UIView animateWithDuration:MENU_SLIDE_ANIMATION_DURATION animations:^{
|
||||
rect.origin.x = (rect.origin.x > 0) ? rect.size.width : -1*rect.size.width;
|
||||
self.view.frame = rect;
|
||||
} completion:^(BOOL finished) {
|
||||
|
||||
[UIView animateWithDuration:MENU_SLIDE_ANIMATION_DURATION animations:^{
|
||||
rect.origin.x = 0;
|
||||
self.view.frame = rect;
|
||||
|
||||
[self popToRootViewControllerAnimated:NO];
|
||||
[self pushViewController:viewController animated:NO];
|
||||
|
||||
if (completion)
|
||||
completion();
|
||||
}];
|
||||
}];
|
||||
}
|
||||
else
|
||||
{
|
||||
[self popToRootViewControllerAnimated:NO];
|
||||
[self pushViewController:viewController animated:YES];
|
||||
|
||||
if (completion)
|
||||
completion();
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - Private Methods -
|
||||
|
||||
- (UIBarButtonItem *)leftBarButton
|
||||
{
|
||||
return [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemBookmarks
|
||||
target:self
|
||||
action:@selector(leftMenuSelected:)];
|
||||
}
|
||||
|
||||
- (UIBarButtonItem *)rightBarButton
|
||||
{
|
||||
return [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemBookmarks
|
||||
target:self
|
||||
action:@selector(righttMenuSelected:)];
|
||||
}
|
||||
|
||||
- (BOOL)isMenuOpen
|
||||
{
|
||||
return (self.view.frame.origin.x == 0) ? NO : YES;
|
||||
}
|
||||
|
||||
- (BOOL)shouldDisplayRightMenuButtonForViewController:(UIViewController *)vc
|
||||
{
|
||||
if ([vc respondsToSelector:@selector(slideNavigationControllerShouldSisplayRightMenu)] &&
|
||||
[(UIViewController<SlideNavigationControllerDelegate> *)vc slideNavigationControllerShouldSisplayRightMenu])
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (BOOL)shouldDisplayLeftMenuButtonForViewController:(UIViewController *)vc
|
||||
{
|
||||
if ([vc respondsToSelector:@selector(slideNavigationControllerShouldSisplayLeftMenu)] &&
|
||||
[(UIViewController<SlideNavigationControllerDelegate> *)vc slideNavigationControllerShouldSisplayLeftMenu])
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
|
||||
return NO;
|
||||
}
|
||||
|
||||
#pragma mark - UINavigationControllerDelegate Methods -
|
||||
|
||||
- (void)navigationController:(UINavigationController *)navigationController
|
||||
willShowViewController:(UIViewController *)viewController
|
||||
animated:(BOOL)animated
|
||||
{
|
||||
if ([self shouldDisplayLeftMenuButtonForViewController:viewController])
|
||||
viewController.navigationItem.leftBarButtonItem = [self leftBarButton];
|
||||
else
|
||||
viewController.navigationItem.leftBarButtonItem = nil;
|
||||
|
||||
if ([self shouldDisplayRightMenuButtonForViewController:viewController])
|
||||
viewController.navigationItem.rightBarButtonItem = [self rightBarButton];
|
||||
else
|
||||
viewController.navigationItem.rightBarButtonItem = nil;
|
||||
}
|
||||
|
||||
#pragma mark - IBActions -
|
||||
|
||||
- (void)leftMenuSelected:(id)sender
|
||||
{
|
||||
[self.righMenu.view removeFromSuperview];
|
||||
[self.view.window insertSubview:self.leftMenu.view atIndex:0];
|
||||
|
||||
[UIView animateWithDuration:MENU_SLIDE_ANIMATION_DURATION
|
||||
animations:^{
|
||||
CGRect rect = self.view.frame;
|
||||
rect.origin.x = (self.isMenuOpen) ? 0 : rect.size.width - MENU_OFFSET;
|
||||
self.view.frame = rect;
|
||||
|
||||
}
|
||||
completion:^(BOOL finished) {
|
||||
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)righttMenuSelected:(id)sender
|
||||
{
|
||||
[self.leftMenu.view removeFromSuperview];
|
||||
[self.view.window insertSubview:self.righMenu.view atIndex:0];
|
||||
|
||||
[UIView animateWithDuration:MENU_SLIDE_ANIMATION_DURATION
|
||||
animations:^{
|
||||
CGRect rect = self.view.frame;
|
||||
rect.origin.x = (self.isMenuOpen) ? 0 : (rect.size.width - MENU_OFFSET )* -1;
|
||||
self.view.frame = rect;
|
||||
|
||||
}
|
||||
completion:^(BOOL finished) {
|
||||
|
||||
}];
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
//
|
||||
// ViewController.m
|
||||
// SlideMenu
|
||||
//
|
||||
// Created by Aryan Gh on 4/24/13.
|
||||
// Copyright (c) 2013 Aryan Ghassemi. All rights reserved.
|
||||
//
|
||||
|
||||
#import "ViewController.h"
|
||||
|
||||
@interface ViewController ()
|
||||
|
||||
@end
|
||||
|
||||
@implementation ViewController
|
||||
|
||||
- (void)viewDidLoad
|
||||
{
|
||||
[super viewDidLoad];
|
||||
// Do any additional setup after loading the view, typically from a nib.
|
||||
}
|
||||
|
||||
- (void)didReceiveMemoryWarning
|
||||
{
|
||||
[super didReceiveMemoryWarning];
|
||||
// Dispose of any resources that can be recreated.
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
@ -1,23 +1,176 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="2.0" toolsVersion="2519" systemVersion="12A206j" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" initialViewController="2">
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="2.0" toolsVersion="2840" systemVersion="12D78" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" initialViewController="yzD-f0-X8n">
|
||||
<dependencies>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="1856"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="1926"/>
|
||||
</dependencies>
|
||||
<scenes>
|
||||
<!--class Prefix:identifier View Controller-->
|
||||
<scene sceneID="5">
|
||||
<!--Slide Navigation Controller-->
|
||||
<scene sceneID="cQY-wH-O5O">
|
||||
<objects>
|
||||
<viewController id="2" customClass="ViewController" sceneMemberID="viewController">
|
||||
<view key="view" contentMode="scaleToFill" id="3">
|
||||
<rect key="frame" x="0.0" y="20" width="320" height="460"/>
|
||||
<navigationController definesPresentationContext="YES" id="yzD-f0-X8n" customClass="SlideNavigationController" sceneMemberID="viewController">
|
||||
<navigationBar key="navigationBar" contentMode="scaleToFill" id="9jY-gB-7xP">
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</navigationBar>
|
||||
<connections>
|
||||
<segue destination="mAB-md-uek" kind="relationship" relationship="rootViewController" id="z8d-Ml-dpq"/>
|
||||
<segue destination="nrg-5w-bbF" kind="push" id="VVC-UO-FWZ"/>
|
||||
</connections>
|
||||
</navigationController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="3Qg-wo-U2C" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="11" y="49"/>
|
||||
</scene>
|
||||
<!--Home View Controller - Home-->
|
||||
<scene sceneID="7Hl-22-JcN">
|
||||
<objects>
|
||||
<viewController storyboardIdentifier="HomeViewController" id="mAB-md-uek" customClass="HomeViewController" sceneMemberID="viewController">
|
||||
<view key="view" contentMode="scaleToFill" id="KmS-nM-BIh">
|
||||
<rect key="frame" x="0.0" y="64" width="320" height="504"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="0tp-7h-5YK">
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" title="Button">
|
||||
<color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="bottom" secondItem="0tp-7h-5YK" secondAttribute="bottom" constant="111" id="2jf-Bb-0Hn"/>
|
||||
<constraint firstItem="0tp-7h-5YK" firstAttribute="leading" secondItem="KmS-nM-BIh" secondAttribute="leading" constant="137" id="xpZ-Fx-eqr"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<navigationItem key="navigationItem" title="Home" id="YV6-8b-6Lr"/>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="Wf8-rc-ajb" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="552" y="-204"/>
|
||||
</scene>
|
||||
<!--Profile View Controller - Profile-->
|
||||
<scene sceneID="xeE-nX-pb6">
|
||||
<objects>
|
||||
<viewController storyboardIdentifier="ProfileViewController" id="nrg-5w-bbF" customClass="ProfileViewController" sceneMemberID="viewController">
|
||||
<view key="view" contentMode="scaleToFill" id="nXC-Mu-u90">
|
||||
<rect key="frame" x="0.0" y="64" width="320" height="504"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="coh-kj-UCb">
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" title="Button">
|
||||
<color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<segue destination="BLR-mt-TZ9" kind="push" id="Z6R-Ri-GZ4"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstItem="coh-kj-UCb" firstAttribute="top" secondItem="nXC-Mu-u90" secondAttribute="top" constant="116" id="r8I-zY-MHB"/>
|
||||
<constraint firstItem="coh-kj-UCb" firstAttribute="leading" secondItem="nXC-Mu-u90" secondAttribute="leading" constant="143" id="wxy-h2-ep0"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<navigationItem key="navigationItem" title="Profile" id="cIB-4y-aS6"/>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="BIU-qR-dGC" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="556" y="455"/>
|
||||
</scene>
|
||||
<!--Menu View Controller-->
|
||||
<scene sceneID="jnp-rY-eNb">
|
||||
<objects>
|
||||
<viewController storyboardIdentifier="MenuViewController" id="Fo7-mQ-36d" customClass="MenuViewController" sceneMemberID="viewController">
|
||||
<view key="view" contentMode="scaleToFill" id="SGn-Wf-7bo">
|
||||
<rect key="frame" x="0.0" y="20" width="320" height="548"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" translatesAutoresizingMaskIntoConstraints="NO" id="sDo-qF-VCh">
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<prototypes>
|
||||
<tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="menuCell" textLabel="xb6-XA-Fp2" style="IBUITableViewCellStyleDefault" id="xqJ-Km-cL1">
|
||||
<rect key="frame" x="0.0" y="22" width="320" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="43"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Home" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="xb6-XA-Fp2">
|
||||
<rect key="frame" x="10" y="0.0" width="300" height="43"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="20"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</tableViewCell>
|
||||
</prototypes>
|
||||
<sections/>
|
||||
<connections>
|
||||
<outlet property="dataSource" destination="Fo7-mQ-36d" id="SUU-1c-fBe"/>
|
||||
<outlet property="delegate" destination="Fo7-mQ-36d" id="djZ-ur-Eos"/>
|
||||
</connections>
|
||||
</tableView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstItem="sDo-qF-VCh" firstAttribute="bottom" secondItem="SGn-Wf-7bo" secondAttribute="bottom" type="default" id="CIM-le-06X"/>
|
||||
<constraint firstItem="sDo-qF-VCh" firstAttribute="top" secondItem="SGn-Wf-7bo" secondAttribute="top" type="default" id="Prl-0H-WcZ"/>
|
||||
<constraint firstItem="sDo-qF-VCh" firstAttribute="trailing" secondItem="SGn-Wf-7bo" secondAttribute="trailing" type="default" id="tMP-ja-deS"/>
|
||||
<constraint firstItem="sDo-qF-VCh" firstAttribute="leading" secondItem="SGn-Wf-7bo" secondAttribute="leading" type="default" id="zHf-8s-rjt"/>
|
||||
</constraints>
|
||||
</view>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="93v-6G-gvs" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="-508" y="63"/>
|
||||
</scene>
|
||||
<!--Profile Detail View Controller - Profile Detail-->
|
||||
<scene sceneID="w1a-xD-Zgv">
|
||||
<objects>
|
||||
<viewController storyboardIdentifier="ProfileDetailViewController" id="BLR-mt-TZ9" customClass="ProfileDetailViewController" sceneMemberID="viewController">
|
||||
<view key="view" contentMode="scaleToFill" id="pd3-of-ZHU">
|
||||
<rect key="frame" x="0.0" y="64" width="320" height="504"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<navigationItem key="navigationItem" title="Profile Detail" id="YcQ-Z1-05c"/>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="4" sceneMemberID="firstResponder"/>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="zoB-W7-tIa" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="1015" y="455"/>
|
||||
</scene>
|
||||
</scenes>
|
||||
<classes>
|
||||
<class className="HomeViewController" superclassName="UIViewController">
|
||||
<source key="sourceIdentifier" type="project" relativePath="./Classes/HomeViewController.h"/>
|
||||
</class>
|
||||
<class className="MenuViewController" superclassName="UIViewController">
|
||||
<source key="sourceIdentifier" type="project" relativePath="./Classes/MenuViewController.h"/>
|
||||
</class>
|
||||
<class className="NSLayoutConstraint" superclassName="NSObject">
|
||||
<source key="sourceIdentifier" type="project" relativePath="./Classes/NSLayoutConstraint.h"/>
|
||||
</class>
|
||||
<class className="ProfileDetailViewController" superclassName="UIViewController">
|
||||
<source key="sourceIdentifier" type="project" relativePath="./Classes/ProfileDetailViewController.h"/>
|
||||
</class>
|
||||
<class className="ProfileViewController" superclassName="UIViewController">
|
||||
<source key="sourceIdentifier" type="project" relativePath="./Classes/ProfileViewController.h"/>
|
||||
</class>
|
||||
<class className="SlideNavigationController" superclassName="UINavigationController">
|
||||
<source key="sourceIdentifier" type="project" relativePath="./Classes/SlideNavigationController.h"/>
|
||||
</class>
|
||||
</classes>
|
||||
<simulatedMetricsContainer key="defaultSimulatedMetrics">
|
||||
<simulatedStatusBarMetrics key="statusBar"/>
|
||||
<simulatedOrientationMetrics key="orientation"/>
|
||||
|
|
|
|||
Loading…
Reference in New Issue