IOS-PPRevealViewController侧边栏
2015-06-09 16:11
453 查看
> 定义 PPRevealViewController
PPRevealSideViewControllerDelegate @property (strong, nonatomic) PPRevealSideViewController *revealSideViewController;
> 初始化
HomeViewController* con = [[HomeViewController alloc]init]; UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:con]; _revealSideViewController = [[PPRevealSideViewController alloc] initWithRootViewController:nav]; _revealSideViewController.delegate = self; _revealSideViewController.options = PPRevealSideOptionsNone;//中间界面阴影 _revealSideViewController.bouncingOffset = 0; _revealSideViewController.panInteractionsWhenClosed = PPRevealSideInteractionNavigationBar|PPRevealSideInteractionContentView;//navBar和内容都支持滑动弹出侧边栏 self.window.rootViewController = _revealSideViewController;
- (PPRevealSideDirection)pprevealSideViewController:(PPRevealSideViewController*)controller directionsAllowedForPanningOnView:(UIView*)view{ return PPRevealSideDirectionLeft;//只支持左滑 }
> 使用
在主页中添加侧边栏在HomeViewController中 -(void )viewWillAppear:(BOOL)animated{ [super viewWillAppear:YES]; SideViewController* side = [[SideViewController alloc]init]; [self.revealSideViewController preloadViewController:side forSide:PPRevealSideDirectionLeft]; }
进入到侧边栏
SideViewController *c = [[SideViewController alloc] initWithNibName:nil bundle:nil]; UINavigationController* nav = [[UINavigationController alloc]initWithRootViewController:c]; [self.revealSideViewController pushViewController:nav onDirection:PPRevealSideDirectionLeft withOffset:70 animated:YES]; PP_RELEASE(c); PP_RELEASE(nav);
从侧边栏弹出到上一个试图,self为侧边栏
[self.revealSideViewController popViewControllerAnimated:YES];
从其它页面进入到主页
HomeViewController *c = [[HomeViewController alloc] initWithNibName:nil bundle:nil]; UINavigationController *n = [[UINavigationController alloc] initWithRootViewController:c]; [self.revealSideViewController popViewControllerWithNewCenterController:n animated:YES]; PP_RELEASE(c); PP_RELEASE(n);
从其它页面进入到侧边栏
HomeViewController* con = [[HomeViewController alloc]initWithNibName:nil bundle:nil]; UINavigationController* nav =[[UINavigationController alloc]initWithRootViewController:con]; [self.revealSideViewController popViewControllerWithNewCenterController:nav animated:YES completion:^{ SideViewController *c = [[SideViewController alloc] initWithNibName:nil bundle:nil]; UINavigationController* nav = [[UINavigationController alloc]initWithRootViewController:c]; [self.revealSideViewController pushViewController:nav onDirection:PPRevealSideDirectionLeft withOffset:70 animated:YES]; PP_RELEASE(c); PP_RELEASE(nav); }]; PP_RELEASE(con); PP_RELEASE(nav);
进入一个新视图
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:ViewController]; [self.revealSideViewController popViewControllerWithNewCenterController:nav animated:YES]; PP_RELEASE(ViewController); PP_RELEASE(nav);
后记
当需要限定屏幕固定范围滑动的时候才有侧边栏功能,请在.m方法中- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touchreturn之前加上
CGPoint poit = [touch locationInView:self.view ]; // NSLog(@"%f,%d",poit.x,_wasClosed); if (poit.x >100) {\ if (!_wasClosed) { return YES; }else{ return NO; } }
相关文章推荐
- iOS 正则表达式
- iOS单例设计模式详解教程
- iOS-集成环信
- iOS基础——浅谈个人对协议、代理的理解
- iOS真机测试初次体验
- ios开发学习笔记(1)
- 一步一步学习iOS 摘记
- iOS代码适配(2)
- iOS开发多线程篇—GCD介绍
- IOS 沙盒(sandbox)机制和文件操作
- [iOS diary]CABasicAnimation KeyPath大全与使用事例
- iOS Ad-Hoc 内测笔记
- IOS 实现键盘弹出视图上移功能
- 如何在未越狱iOS设备上安装IPA
- 制作iOS Ad-Hoc测试应用
- 启动图和屏幕适配的关系
- IOS开发基础知识--碎片14
- iOS项目的持续集成与管理
- iOS开发常用快捷键
- ios Cocoa error 4097