以前,写了一篇文章:UIView显示边栏的方法,这篇文章实现了相同的功能,本文只列出部分核心代码,具体的请参考附件。
AppDelegate.h
#import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicationDelegate> @property (strong, nonatomic) UIWindow *window; @property (strong, nonatomic) PPRevealSideViewController *revealSideViewController; @end
AppDelegate.m
#import "AppDelegate.h" #import "RootViewController.h" @implementation AppDelegate @synthesize window = _window; @synthesize revealSideViewController = _revealSideViewController; - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; RootViewController *main = [[RootViewController alloc] initWithStyle:UITableViewStyleGrouped]; UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:main]; self.revealSideViewController = [[PPRevealSideViewController alloc] initWithRootViewController:nav]; [self.revealSideViewController setDirectionsToShowBounce:PPRevealSideDirectionNone]; self.window.rootViewController = self.revealSideViewController; self.window.backgroundColor = [UIColor whiteColor]; [self.window makeKeyAndVisible]; return YES; } @end
主视图中的核心代码:
- (void) showLeft:(id)sender { [self.revealSideViewController pushOldViewControllerOnDirection:PPRevealSideDirectionLeft animated:YES]; } - (void) viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; LeftViewController *left = [[LeftViewController alloc] initWithStyle:UITableViewStylePlain]; [self.revealSideViewController preloadViewController:left forSide:PPRevealSideDirectionLeft]; }
示例图: