一,效果图。
二,工程图。
三,代码。
AppDelegate.h
#import <UIKit/UIKit.h> //加入头文件 #import "PPRevealSideViewController.h" @interface AppDelegate : UIResponder <UIApplicationDelegate,PPRevealSideViewControllerDelegate> @property (strong, nonatomic) UIWindow *window; @end
AppDelegate.m
#import "AppDelegate.h" #import "MainViewController.h" @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // Override point for customization after application launch. MainViewController *main = [[MainViewController alloc] init]; UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:main]; PPRevealSideViewController *revealSideViewController = [[PPRevealSideViewController alloc] initWithRootViewController:nav]; revealSideViewController.delegate = self; self.window.rootViewController = revealSideViewController; self.window.backgroundColor = [UIColor whiteColor]; [self.window makeKeyAndVisible]; return YES; }
MainViewController.h
#import <UIKit/UIKit.h> @interface MainViewController : UIViewController @end
MainViewController.m
#import "MainViewController.h" //加入头文件 #import "PPRevealSideViewController.h" #import "leftViewController.h" #import "rightViewController.h" @interface MainViewController () @end @implementation MainViewController - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self; } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. //设置背景色 self.view.backgroundColor= [UIColor orangeColor]; //隐藏导航条 self.navigationController.navigationBarHidden=YES; // 手势左右滑动屏幕 UISwipeGestureRecognizer *swipeLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleMoveFrom:)]; [swipeLeft setDirection:UISwipeGestureRecognizerDirectionLeft]; [self.view addGestureRecognizer:swipeLeft]; UISwipeGestureRecognizer *swipeRight = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleMoveFrom:)]; [swipeRight setDirection:UISwipeGestureRecognizerDirectionRight]; [self.view addGestureRecognizer:swipeRight]; } // 滑动事件 -(void)handleMoveFrom:(UISwipeGestureRecognizer *)swipe { if(swipe.direction == UISwipeGestureRecognizerDirectionRight){ leftViewController *left = [[leftViewController alloc] init]; [self.revealSideViewController pushViewController:left onDirection:PPRevealSideDirectionLeft withOffset:50.0 animated:YES]; } if(swipe.direction == UISwipeGestureRecognizerDirectionLeft){ rightViewController *right = [[rightViewController alloc] init]; [self.revealSideViewController pushViewController:right onDirection:PPRevealSideDirectionRight withOffset:50.0 animated:YES]; } } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. }
rightViewController.h
#import <UIKit/UIKit.h> @interface rightViewController : UIViewController @end
rightViewController.m
#import "rightViewController.h" @interface rightViewController () @end @implementation rightViewController - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self; } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. //设置标题 self.title=@"right"; //设置背景色 self.view.backgroundColor=[UIColor blueColor]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. }
leftViewController.h
#import <UIKit/UIKit.h> @interface leftViewController : UIViewController @end
leftViewController.m
#import "leftViewController.h" @interface leftViewController () @end @implementation leftViewController - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self; } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. //设置标题 self.title=@"left"; //设置背景色 self.view.backgroundColor=[UIColor redColor]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. }