您的位置:首页 > 移动开发 > IOS开发

[iOS 抽屉DDMenuController] 侧边弹出库 使用

2016-08-05 14:31 375 查看
步骤如下:

1.必须先定义左侧栏,右侧栏的内容,分别为LeftViewController,RightViewController.

2.在AppDelegate中添加方法:

ViewController *viewController = [[ViewController alloc]init];
UINavigationController *nav = [[UINavigationControlleralloc]initWithRootViewController:viewController];
DDMenuController *menuController = [[DDMenuControlleralloc]initWithRootViewController:nav];
[menuController setEnableGesture:NO];
self.window.rootViewController = menuController;
self.window.backgroundColor = [UIColor whiteColor];

LeftViewController *leftController = [[LeftViewController alloc]init];
menuController.leftViewController = leftController;
RightViewController *rightController = [[RightViewController alloc]init];
menuController.rightViewController = rightController;

[self.window makeKeyAndVisible];


这样可以左滑到左侧栏,然后点击屏幕返回;右滑到右侧栏,点击屏幕返回了。

3.如果要实现按钮滑动到左侧栏,添加如下方法:

(void)showLeft:(UIButton *)sender

{

DDMenuController ddmenu = (DDMenuController )((AppDelegate *)[[UIApplication sharedApplication]delegate].window.rootViewController);

[ddmenu showLeftController:YES];

}

4.如果要实现3个页面自由滑动请自定义。

我觉得DDMenuController还有以下不好用的地方:

1.当滑动到左侧栏后就不能再滑动回到主页面了,只能点击右侧屏幕返回,用户体验稍差;

2.没有实现有远近视角的半翻页效果(看起来侧边栏侧对着用户一样),效果不够出彩;

如果你是UI大牛或小牛的话,还是建议自己定义效果吧;也可能是我对这个类的研究不够深入,欢迎指正。

目前我使用的是同事写的一个好用的类,可能会在以后的博客中给出。

以上内容为转载

因为DDMenuController是继承自UINavigationController

所以,使用了DDMenu之后, 我自己原本的naigationController 就失效了 变成了DDMenuController的样式

_window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
SYViewController *v = [[SYViewController alloc] init];
//    MainNavigationController *nva = [[MainNavigationController alloc] initWithRootViewController:v];
//    _window.rootViewController = nva;
//    [_window makeKeyWindow];

DDMenuController *viewControllerRoot = [[DDMenuController alloc] initWithRootViewController:v];
NFCViewController *nfc = [[NFCViewController alloc] initWithNibName:@"NFCViewController" bundle:nil];
viewControllerRoot.rightController = nfc;

_window.rootViewController = viewControllerRoot;
[_window makeKeyWindow];


所以,你可以在DDMenuController里面的init方法里, 粘贴你的navigation设置代码即可

- (id)initWithRootViewController:(UIViewController*)controller {
if ((self = [super initWithRootViewController:controller])) {

self.navigationBar.titleTextAttributes=@{NSForegroundColorAttributeName:[UIColor blackColor],NSFontAttributeName : [UIFont systemFontOfSize:17]};
self.navigationBar.tintColor = [Common hexStringToColor:@"589e3e"];

}
return self;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: