2014-10-30 95 views
-3

我有一个名为“home”和一个名为“菜单”的类与tableview,在家里我创建一个按钮来推菜单,当我点击按钮,我使框架移动并出现菜单但我不能点击菜单中的表格视图单元格,优先级是家庭。我该如何改变并完成这项工作?滑动菜单以编程方式

- (void)viewDidLoad { 

    [super viewDidLoad]; 
    menuViewController = [[ITMenuViewController alloc] init]; 
    menuViewController.view.frame = CGRectMake(0, 0, 0, 568); 
    [self.view addSubview:menuViewController.view]; 

    btn = [[UIButton alloc] init]; 

    btn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
    [btn addTarget:self action:@selector(pushMenu) forControlEvents:UIControlEventTouchUpInside]; 
    [btn setTitle:@"push" forState:UIControlStateNormal]; 
    btn.frame = CGRectMake(40, 300, 240, 40); 
    [btn setBackgroundColor:[UIColor orangeColor]]; 
    [btn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; 
    btn.layer.cornerRadius = 2; 
    btn.tag = 1; 
    btn.clipsToBounds = YES; 
    //set other button properties here. 
    [self.view addSubview:btn]; 
} 

- (void)pushMenu { 

    if (menuViewController.view.frame.origin.x < 0 && btn.tag == 2) { 
     [UIView animateKeyframesWithDuration:0.5 delay:0 options:UIViewAnimationOptionCurveEaseIn animations:^{ 

     self.view.frame = CGRectMake(0, 0, 320, 568); 
     menuViewController.view.frame=CGRectMake(0, 0, 0, 568); 

     } completion:^(BOOL finished) { 
      btn.tag = 1; 
     }]; 
    } 

    if (menuViewController.view.frame.origin.x >= 0 && btn.tag == 1) 
    { 
     [UIView animateKeyframesWithDuration:0.5 delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^{ 

      self.view.frame = CGRectMake(200, 0, 320, 568); 
      menuViewController.view.frame=CGRectMake(-self.view.frame.size.width + 0, 0, self.view.frame.size.width, 568); 
      [self.view.layer setCornerRadius:4]; 
      [self.view.layer setShadowColor:[UIColor blackColor].CGColor]; 
      [self.view.layer setShadowOpacity:0.8]; 
      [self.view.layer setShadowOffset:CGSizeMake(0.0f, 2.5f)];   
     } completion:^(BOOL finished) { 
      btn.tag = 2; 
     }]; 
    }} 
} 
+2

请显示一些代码。 – 2014-10-30 15:08:01

+0

好的,你现在可以检查 – 2014-10-30 15:23:17

回答

0

检查PPRevealSideViewController。它会帮助你为你想要的https://github.com/ipup/PPRevealSideViewController

你可以在你的appdelegate添加您的主视图控制器是这样的:

HomeViewController *home = [[HomeViewController alloc initWithNibName:@"MainViewController" bundle:nil]; 
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:home]; 
_revealSideViewController = [[PPRevealSideViewController alloc] initWithRootViewController:nav]; 

self.window.rootViewController = _revealSideViewController; 

,推动你的马努 - 视图 - 控制是这样的:

MenuViewController *menu = [[MenuViewController alloc] initWithNibName:@"MenuViewController" bundle:nil ]; 
[self.revealSideViewController pushViewController:menu onDirection:PPRevealSideDirectionBottom animated:YES]; 

编辑

要添加PPRevealSideViewController为您项目的子模块转到终端:

$ cd /path/to/MyApplication 
# If this is a new project, initialize git... 
$ git init 
$ git submodule add git://github.com/ipup/PPRevealSideViewController.git vendor/PPRevealSideViewController 
$ git submodule update --init --recursive 

- 在您的XCode项目中,从PPRevealSideViewController文件夹获取PPRevealSideViewController.h和.m文件,并将它们拖到您的项目中。

- 将PPRevealSideViewController.h文件导入到PCH文件或AppDelegate文件中。

- 添加QuartzCore框架。

- 使用这个新的控制器开始!

+0

我尝试使用但没有找到文件#import ,如果我删除了其他问题出现 – 2014-10-30 16:44:49

+0

你是如何安装它的?通过cocoapods或作为子模块? – euthimis87 2014-10-30 16:47:19

+0

是的,我按照步骤,但错误仍然存​​在 – 2014-10-30 17:14:39