使用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 @   cocoajin  阅读(603)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示