Как скрыть панель вкладок для некоторых страниц и сделать ее снова видимой? - PullRequest
0 голосов
/ 21 апреля 2010

У меня есть приложение, которое использует контроллер панели вкладок вместе с контроллером навигации. Но для некоторых страниц я хочу скрыть обе панели (вкладка и навигация), после этого они снова будут видны ... Я могу скрыть панель навигации и также сделал с созданием. это появляется после нескольких страниц. Я могу скрыть панель вкладок с - (BOOL) скрываетBottomBarWhenPressed { вернуть ИСТИНА; }

Но проблема в том, как сделать его снова видимым после нескольких страниц?

1 Ответ

6 голосов
/ 22 апреля 2010
[[self navigationController] setNavigationBarHidden:UIDeviceOrientationIsLandscape(toInterfaceOrientation) animated:YES];

затем в подклассе UITabBarController

- (void) hideTabBar:(BOOL)hide animated:(BOOL)animated {

    if (tabBarHidden == hide) { return; }

    if (animated) {
        [UIView beginAnimations:nil context:NULL];
        [UIView setAnimationDuration:1.5];
    }

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

        if([view isKindOfClass:[UITabBar class]]) {

            if (!hide) {
                [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y-49, view.frame.size.width, view.frame.size.height)];
            } else {
                [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y+49, view.frame.size.width, view.frame.size.height)];
            }
        } else {
            if (!hide) {
                [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, view.frame.size.height-49)];
            } else {
                [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, view.frame.size.height+49)];
            }

        }
    }

    if (animated) { [UIView commitAnimations]; }

    tabBarHidden = hide;

}
...