Не удается скрыть UITabBar при нажатии на конкретную вкладку [Tab Bar Application] - шаблон - PullRequest
2 голосов
/ 22 марта 2012

разработчики!

В настоящее время я работаю над приложением, которое использует шаблон приложения панели вкладок. Что я хочу сделать это имитировать стартовую страницу для моего приложения, которая соответствует первой вкладке.

Таким образом, при запуске приложения выбирается первая вкладка, и UITabBar не должен быть виден. В этом «стартовом представлении» есть несколько кнопок, которые действуют как остальные вкладки, поэтому, например, я нажимаю кнопку № 2, и нажимается вторая вкладка, и снова отображается UITabBar.

Моя проблема в том, что у меня есть способ скрыть панель, но подпредставление не изменяется в полноэкранном режиме.

Используя: [self.tabBarController.tabBar setHidden: YES];

Я также пытался использовать: self.hidesBottomBarWhenPush = YES;

Но, похоже, это не дает никакого эффекта, и я не уверен, куда добавить код, так как я использую шаблон.

Кто-нибудь знает, как реализовать это с помощью шаблона приложения панели вкладок?

Я предполагаю, что это должно быть на: - (void) tabBarController: (UITabBarController *) tabBarController didSelectViewController: (UIViewController *) viewController

Но я пробовал это, и этот метод никогда не вызывается ...

Большое спасибо, Роберт

1 Ответ

2 голосов
/ 22 марта 2012

Этот код может помочь вам скрыть tabbarcontroller и изменить его размер.

    - (void) hideTabBar:(UITabBarController *) tabbarcontroller {

    int height = 480;

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.3];

    for(UIView *view in tabbarcontroller.view.subviews) {
        if([view isKindOfClass:[UITabBar class]]) {
            [view setFrame:CGRectMake(view.frame.origin.x, height, view.frame.size.width, view.frame.size.height)];
        } 
        else {
            [view setFrame:CGRectMake(view.frame.origin.x,view.frame.origin.y, 320, 436)];
        }
    }

    [UIView commitAnimations];
}

Этот второй метод может помочь вам снова установить tababr в представлении

    - (void) showTabBar:(UITabBarController *) tabbarcontroller {

    int height = 480;

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.3]; 

    for(UIView *view in tabbarcontroller.view.subviews) {

        if([view isKindOfClass:[UITabBar class]]) {
            [view setFrame:CGRectMake(view.frame.origin.x, height, view.frame.size.width, view.frame.size.height)];            
        } 
        else {
            [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, height)];
        }
    }    

    [UIView commitAnimations];
}

.реализовать его в своем коде ...

...