使用PPRevealSideViewController创建抽屉式导航

PPRevealSideViewController 这是一个开源类;

使用:

   1:创建一个PPRevealSideViewControllerUINavigationController对象;

    2: 设置 self.window.rootViewController = slideViewController;

      注:要先在-Prefix.pch 预编译文件里面 加上 #import "PPRevealSideViewController.h"

    3: 在主页面导航上加一个 UIBarButtonItem 并设置回调方法 enterLeftNavication

    4: 在回调方法里面,设置拉开左页面导航;

  5: 在左导航页面里面,调用  [self.revealSideViewController popViewControllerAnimated:YES];回到主页面;

如代码:

appdelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    // Override point for customization after application launch.
    self.window.backgroundColor = [UIColor whiteColor];
    
    
    //1:创建一个PPRevealSideViewController,UINavigationController对象;
    //2: 设置 self.window.rootViewController = slideViewController;
    //注:要先在-Prefix.pch 预编译文件里面 加上 #import "PPRevealSideViewController.h"


    MainTableVC *mainVC = [[MainTableVC alloc]initWithStyle:UITableViewStylePlain];
    UINavigationController *navVC = [[UINavigationController alloc]initWithRootViewController:mainVC];
    PPRevealSideViewController *slideViewController = [[PPRevealSideViewController alloc]initWithRootViewController:navVC];
    self.window.rootViewController = slideViewController;
    
    [mainVC release];
    [navVC release];
    [slideViewController release];
    

    
    [self.window makeKeyAndVisible];
    return YES;
}
View Code

MainTableVC.m主页面

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    //3: 在主页面导航上加一个 UIBarButtonItem 并设置回调方法 enterLeftNavication;
    //4: 在回调方法里面,设置拉开左页面导航;
    
    self.navigationItem.title = @"主页面";
    UIBarButtonItem *leftBarBtn= [[UIBarButtonItem alloc]initWithTitle:@"左导航" style:UIBarButtonItemStyleBordered target:self action:@selector(enterLeftNavication)];
    self.navigationItem.leftBarButtonItem = leftBarBtn;
    
    
    [leftBarBtn release];
    
}

//左界面回调方法;
- (void)enterLeftNavication
{
    LeftTableVC *leftTableView = [[LeftTableVC alloc]initWithStyle:UITableViewStylePlain];
    UINavigationController *leftNavVC = [[UINavigationController alloc]initWithRootViewController:leftTableView];
    [self.revealSideViewController pushViewController:leftNavVC onDirection:PPRevealSideDirectionLeft animated:YES];
    
    [leftNavVC release];
    [leftTableView release];
}
View Code

LeftTableVC.m抽屉页面

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    self.navigationItem.title = @"左页面";
}

//5: 在左导航页面里面,调用  [self.revealSideViewController popViewControllerAnimated:YES];回到主页面;

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [self.revealSideViewController popViewControllerAnimated:YES];
    NSLog(@" 左导航页面---》%d",indexPath.row);
    
    
}
View Code

 

posted @ 2013-05-17 21:56  cocoajin  阅读(597)  评论(0编辑  收藏  举报