首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何删除splitviewcontroller的手势iOS7

如何删除splitviewcontroller的手势iOS7
EN

Stack Overflow用户
提问于 2014-03-27 19:03:49
回答 1查看 190关注 0票数 2

我有一个splitView控制器,默认情况下用手势打开/隐藏菜单

让它不编写任何代码是个好主意,但正如您所看到的,我添加了一个旋转木马来处理这个手势,但是拆分菜单的手势禁用了旋转木马的移动性,这是我获得UISplitViewController的代码:

显示拆分视图控制器的代码

初始VC.m:

代码语言:javascript
复制
-(void)viewDidAppear:(BOOL)animated{
    UIStoryboard *storyBoard        = [UIStoryboard storyboardWithName:@"iPad" bundle:nil];

    if ([[[UIDevice currentDevice]model] hasPrefix:@"iPad"]){
        ViewController    *rightViewController       = [storyBoard instantiateViewControllerWithIdentifier:@"ViewController"];
        rightViewController.navigationItem.titleView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:LOGO_COMPANY]];
        [functions showSplitViewControllerInView:self.view withDetailViewController:rightViewController];
    }
}

职能。m:

代码语言:javascript
复制
-(void)showSplitViewControllerInView:(UIView *)view
            withDetailViewController:(id)rightViewController{

    UIStoryboard *mainStoryboard        = [UIStoryboard storyboardWithName:@"iPad" bundle: nil];

    UINavigationController  *leftNavController;
    UINavigationController  *rightNavController;

    MenuPrincipalVC  *leftViewController     = [mainStoryboard instantiateViewControllerWithIdentifier:@"MenuPrincipalVC"];

    leftNavController                   = [[UINavigationController alloc] initWithRootViewController:leftViewController];
    rightNavController                  = [[UINavigationController alloc] initWithRootViewController:rightViewController];

    leftNavController.toolbarHidden                 = FALSE;
    rightNavController.toolbarHidden                = FALSE;
    leftNavController.navigationBar.translucent     = TRUE;
    rightNavController.navigationBar.translucent    = TRUE;
    leftNavController.toolbar.translucent           = FALSE;
    rightNavController.toolbar.translucent          = TRUE;

    UISplitViewController   *splitViewController    = [[UISplitViewController alloc] init];
    splitViewController.viewControllers             = [NSArray arrayWithObjects:leftNavController, rightNavController, nil];
    splitViewController.delegate        = rightViewController;

    view.window.rootViewController      = splitViewController;
}

详细视图控制器上显示/隐藏按钮菜单的代码

视图控制器m:

代码语言:javascript
复制
#pragma mark - UISplitViewDelegate methods
-(void)splitViewController:(UISplitViewController *)svc
    willHideViewController:(UIViewController *)aViewController
         withBarButtonItem:(UIBarButtonItem *)barButtonItem
      forPopoverController:(UIPopoverController *)pc{

    //Grab a reference to the popover
    self.popover = pc;

    [barButtonItem setImage:[UIImage imageNamed:@"menuButton.png"]];

    UINavigationItem *navItem = self.navigationItem;
    [navItem setLeftBarButtonItem:barButtonItem animated:YES];
}

-(void)splitViewController:(UISplitViewController *)svc
    willShowViewController:(UIViewController *)aViewController
 invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem{

    //Remove the barButtonItem.
    [_navBarItem setLeftBarButtonItem:nil animated:YES];

    //Nil out the pointer to the popover.
    _popover = nil;
}
#pragma mark -
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-02 16:42:14

我刚修改了你的方法,你为什么不试试呢?

代码语言:javascript
复制
-(void)showSplitViewControllerInView:(UIView *)view
            withDetailViewController:(id)rightViewController{

    UIStoryboard *mainStoryboard        = [UIStoryboard storyboardWithName:@"iPad" bundle: nil];

    UINavigationController  *leftNavController;
    UINavigationController  *rightNavController;

    MenuPrincipalVC  *leftViewController     = [mainStoryboard instantiateViewControllerWithIdentifier:@"MenuPrincipalVC"];
    leftViewController.title            = @" ";


    leftNavController                   = [[UINavigationController alloc] initWithRootViewController:leftViewController];
    rightNavController                  = [[UINavigationController alloc] initWithRootViewController:rightViewController];

    leftNavController.toolbarHidden                 = FALSE;
    rightNavController.toolbarHidden                = FALSE;
    leftNavController.navigationBar.translucent     = TRUE;
    rightNavController.navigationBar.translucent    = TRUE;
    leftNavController.toolbar.translucent           = FALSE;
    rightNavController.toolbar.translucent          = TRUE;

    UISplitViewController   *splitViewController    = [[UISplitViewController alloc] init];
    splitViewController.viewControllers             = [NSArray arrayWithObjects:leftNavController, rightNavController, nil];
    splitViewController.delegate                    = rightViewController;

    if ([splitViewController respondsToSelector:@selector(setPresentsWithGesture:)]) {
        [splitViewController setPresentsWithGesture:NO];
    }

    view.window.rootViewController      = splitViewController;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22696858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档