Development Tip

iOS에서 탐색 모음으로보기의 탭 모음을 숨기거나 표시하는 방법은 무엇입니까?

yourdevel 2020. 12. 9. 21:51
반응형

iOS에서 탐색 모음으로보기의 탭 모음을 숨기거나 표시하는 방법은 무엇입니까?


탐색 모음과 탭 모음이있는보기가 있습니다. 내가 원하는 것은 특정보기에서 탭 표시 줄을 숨기고 사용자가보기를 변경할 때 탭 표시 줄을 다시 표시하는 것입니다.

탭 표시 줄을 숨기는 코드 스 니펫을 보았습니다.

-(void)makeTabBarHidden:(BOOL)hide
{
    // Custom code to hide TabBar
    if ( [tabBarController.view.subviews count] < 2 ) {
        return;
    }

    UIView *contentView;

    if ( [[tabBarController.view.subviews objectAtIndex:0] isKindOfClass:[UITabBar class]] ) {
        contentView = [tabBarController.view.subviews objectAtIndex:1];
    } else {
        contentView = [tabBarController.view.subviews objectAtIndex:0];
    }

    if (hide) {
        contentView.frame = tabBarController.view.bounds;       
    }
    else {
        contentView.frame = CGRectMake(tabBarController.view.bounds.origin.x,
             tabBarController.view.bounds.origin.y,
             tabBarController.view.bounds.size.width,
             tabBarController.view.bounds.size.height - tabBarController.tabBar.frame.size.height);
    }

    tabBarController.tabBar.hidden = hide;
}

에서 : http://nickwaynik.com/iphone/hide-tabbar-in-an-ios-app/

탭 바를 숨기고 싶은 뷰에서 이것을 호출합니다.

[self makeTabBarHidden:YES];

해당보기에서 표시 / 숨길 때 제대로 작동하지만 이전보기로 다시 이동하면 탭 표시 줄도 숨겨집니다. 내가보기의에서 그 함수를 호출 시도 viewDidUnload, viewWillDisappear, viewDidDisappear기능을하지만 아무 일도 발생하지 않습니다. 함수가 이전보기의 호출되는 경우에도 마찬가지입니다 viewDidLoad, viewWillAppear, viewDidAppear기능.


대신 UIViewController.hidesBottomBarWhenPushed를 설정할 수 있습니다.

DetailViewController *detailViewController = [[DetailViewController alloc] init];
detailViewController.hidesBottomBarWhenPushed = YES;
[[self navigationController] pushViewController:detailViewController animated:YES];    
[detailViewController release];

스토리 보드의 인터페이스 빌더에서도이 작업을 수행 할 수 있습니다. 탭 바를 숨기고 자하는 View Controller를 선택한 다음 "Hide Bottom Bar on Push"를 선택합니다.

여기에 이미지 설명 입력


방금 UITabBarController에 범주를 만들었으므로 선택적으로 애니메이션으로 TabBar를 숨길 수 있습니다.

https://github.com/idevsoftware/Cocoa-Touch-Additions/tree/master/UITabBarController_setHidden

그것은 추가 tabBarHidden(속성과 isTabBarHidden그 게터 등) 및 - (void)setTabBarHidden:(BOOL)hidden animated:(BOOL)animated방법.


self.navigationController.hidesBottomBarWhenPushed=YES;

당신이 행을 추가 viewdidload하거나 viewWillAppear이 당신에게 바닥에서 탭을 숨 깁니다.


숨기기 / 표시를 위해 이것을 시도하십시오.

-(void)viewWillDisappear:(BOOL)animated{
    self.hidesBottomBarWhenPushed = NO;
}
-(void)viewWillAppear:(BOOL)animated{
    self.hidesBottomBarWhenPushed = YES;
}

Swift 3 : viewwillAppear 또는 viewdidappear에서 탭바 숨기기 설정

self.tabBarController?.tabBar.isHidden = true

Xib 또는 스토리 보드 파일에서보기 컨트롤러를 클릭하면 속성 관리자에서 동일한 속성을 사용할 수 있습니다.


아래 코드를 사용할 수 있지만 tabBar뒤로 이동할 때 숨겨져 있습니다.

    //hide tabbar
    //self.tabBarController?.tabBar.isHidden = true

더 나은 방법"Hide Bottom Bar on Push"내가 한 것처럼 main.storyboard 확인 통해 수행하는 것입니다.

여기에 이미지 설명 입력

참고 URL : https://stackoverflow.com/questions/6383069/how-to-hide-show-tab-bar-of-a-view-with-a-navigation-bar-in-ios

반응형