抽屉菜单实现,如何关闭菜单 - IOS

时间:2014-03-19 21:12:34

标签: ios iphone objective-c ios7

我有一个应用程序,我正在实施抽屉菜单,例如Google+,但是当连续选择时不能关闭菜单,我用调试器检查这个,当我将消息发送给CCKFNavDrawer时,属性的值零或零,怎么解决这个问题?

存储库Here

CCKFNavDrawer.m 我有一个类,这个方法也有.h文件

- (void)closeNavigationDrawer{

//    NSLog(@"close x=%f",self.menuView.center.x);
float duration = MENU_DURATION/self.menuWidth*abs(self.drawerView.center.x)+MENU_DURATION/2; // y=mx+c

// shawdow
[UIView animateWithDuration:duration
                      delay:0
                    options:UIViewAnimationOptionCurveEaseInOut
                 animations:^{
                     self.shawdowView.backgroundColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.0f];
                 }
                 completion:^(BOOL finished){
                     self.shawdowView.hidden = YES;
                 }];

// drawer
[UIView animateWithDuration:duration
                      delay:0
                    options:UIViewAnimationOptionBeginFromCurrentState
                 animations:^{
                     self.drawerView.frame = self.outFrame;
                 }
                 completion:nil];
self.isOpen= NO;
}

在DrawerView.m中有这个方法

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

   CCKFNavDrawer *c = [[CCKFNavDrawer alloc] init];
    [c closeNavigationDrawer];
}

1 个答案:

答案 0 :(得分:0)

在didSelectRowAtIndexPath中,您正在分配新的CCKFNavDrawer并调用默认的初始化程序,但之后您只需立即调用closeNavigatorDrawer。您的抽屉从未添加到视图中。

我认为您必须在程序中的其他位置创建一个抽屉,而不是创建一个新的抽屉,您应该在行选择方法中引用