xcode не может скрыть tabbarcontroller - PullRequest
1 голос
/ 13 декабря 2011

У меня есть tabbarcontroller в качестве основного контроллера, и когда представление выдвигается, я хотел бы скрыть его.Я использую hidesBottomBarWhenPressed, но не работает.Спасибо.

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        self.hidesBottomBarWhenPushed = YES;
    }
    return self;
}

Ответы [ 3 ]

2 голосов
/ 13 декабря 2011

попробуйте добавить эту строку, когда вы нажимаете этот контроллер, в его родительском контроллере представления:

    YourViewController *controller = [[YourViewController alloc]init....];
    controller.hidesBottomBarWhenPushed = YES;
    //then push the view controller

Удачи

1 голос
/ 13 декабря 2011

Это будет работать, только если один из viewControllers tabBarController является UINavigationController.Свойство hidesBottomBarWhenPushed учитывается только в том случае, если контроллер представления помещается в стек UINavigationController, и мало что делает, если он является корневым контроллером представления.

0 голосов
/ 13 декабря 2011

Я реализовал свой собственный пользовательский tabBarController (который расширяет исходный UITabBarController ), потому что мне нужно программно переключать панели при определенных обстоятельствах (например, поворот устройства), это моя реализация (комментарии объясняют, как этоработает):

- (void)hideBottomBar:(BOOL)hide
{
    @try 
    {
        // UITabBarController has 2 subviews:
        // - the first (index:0) is that one containing the active view controller's view
        // - the second (index:1) is that one containing the UITabBar (self.tabBar)
        UIView *topView = [self.view.subviews objectAtIndex:0];
        UIView *bottomView = [self.view.subviews objectAtIndex:1];

        // hide tabs container if necessary
        [bottomView setHidden:hide];

        // adjust frame
        if (hide) 
        {
            // expand main view to fit available space
            [topView setFrame:self.view.bounds];
        }
        else
        {
            // restore main view frame
            CGRect frame = topView.frame;
            frame.size.height -= bottomView.frame.size.height;
            [topView setFrame:frame];
        }
    }
    @catch (NSException *exception) 
    {
        [[GTMLogger sharedLogger] logError:@"Error occured adjusting tabs view: %@", exception.description];
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...