Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/122.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
抽屉菜单实现,如何关闭菜单-IOS_Ios_Iphone_Objective C_Ios7 - Fatal编程技术网

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

抽屉菜单实现,如何关闭菜单-IOS,ios,iphone,objective-c,ios7,Ios,Iphone,Objective C,Ios7,我有一个应用程序,我正在实现一个抽屉菜单,比如Google+,但当我在一行中选择时不能关闭菜单,我用调试器检查,当我向CCKFNavDrawer发送消息时,属性值为零或零,如何解决这个问题 存储库 CCKFNavDrawer.m 我有一个使用这个方法的类,它也在.h文件中 - (void)closeNavigationDrawer{ // NSLog(@"close x=%f",self.menuView.center.x); float duration = MENU_DURATION

我有一个应用程序,我正在实现一个抽屉菜单,比如Google+,但当我在一行中选择时不能关闭菜单,我用调试器检查,当我向CCKFNavDrawer发送消息时,属性值为零或零,如何解决这个问题

存储库

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;
}
在抽屉视图中,我有这个方法

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

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

在didSelectRowAtIndexPath中,您正在分配一个新的CCKFNavDrawer并调用默认的初始化器,但随后您只需直接调用closeNavigatorDrawer。您的抽屉从未添加到视图中


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

请发布您怀疑导致问题的代码部分或您看到问题的地方。