首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MasterView上隐藏UISplitViewController iOS7.1

如何在MasterView上隐藏UISplitViewController iOS7.1
EN

Stack Overflow用户
提问于 2014-04-10 17:23:55
回答 2查看 1.1K关注 0票数 2

我正在iOS上开发一个应用程序,它显示一个UISplitViewController。在纵向模式中,显示/隐藏主视图控制器(MenuPrincipalVC)的按钮如下:

然而,当我旋转视图控制器时,无论菜单是否隐藏在纵向视图中,它总是可见的

我希望主视图在两个方向(景观和纵向)上具有相同的行为,我希望主视图(MenuPrincipalVC)被隐藏,并在顶部设置一个按钮来显示/hidding主视图控制器,这是我的代码:

这是为了创建SplitView并显示它,masterViewController总是MenuPrincipalVC,但是detailView依赖于rightViewController:

代码语言:javascript
复制
#pragma mark *** UISplitViewController methods ***
-(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;
}
#pragma -

在我的rightViewController上,我设置了以下方法:

代码语言: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.title             = [NSString fontAwesomeIconStringForEnum:FABars];
    NSDictionary *textAttributes    = @{NSFontAttributeName : [UIFont fontWithName:kFontAwesomeFamilyName
                                                                              size:TOOLBAR_ICONS_SIZE],
                                        NSForegroundColorAttributeName : [UIColor whiteColor]};
    [barButtonItem setTitleTextAttributes:textAttributes forState:UIControlStateNormal];


    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

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-11 18:47:19

我所要做的就是将下一行代码添加到详细的视图控制器中:

代码语言:javascript
复制
-(BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation{
    return YES;
}
票数 3
EN

Stack Overflow用户

发布于 2016-04-23 19:21:53

另一种解决方案可能只是专门设置主视图控制器的宽度(当然,表示控制器总是可以替代行为古怪和难以使用的分割视图方法)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22994883

复制
相关文章

相似问题

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