IOS 隐藏UItabbar后底部留白的问题

一般App都是Window->UITabBarController->UINavigationController->UIViweController,而一般跟视图ViewController的UITabBar都是显示的,但是随便push到某个ViewController都是需要隐藏的。

比如:A是跟视图ViewController,A push 到B ,B需要隐藏

很多人喜欢这样写,这样是错误的,因为会在B底部留白

在B控制器里面写

-(void)viewWillAppear:(BOOL)animated{

    [superview WillAppear:animated];

    self.tabBarController.tabBar.hidden=YES;

}

- (void)viewWillDisappear:(BOOL)animated{

    [superview WillDisappear:animated];

    self.tabBarController.tabBar.hidden=YES;

}


正确的姿势应该是在Apush到B之前就已经设置好了隐藏UITabBar

B.hidesBottomBarWhenPushed=YES;

[self.navigationController pushViewController:B animated:YES];

这样就不会存在留白的问题,再push到别的控制器就不用写这句话也可以隐藏的

这是pop到跟视图UIViewController发现,UITabBar还是隐藏的状态,那么只需要在A控制器添加

-(void)viewWillAppear:(BOOL)animated{

    [superview WillAppear:animated];

    self.tabBarController.tabBar.hidden=NO;

}

你可能感兴趣的:(IOS 隐藏UItabbar后底部留白的问题)