http://blog.csdn.net/xyt8023y/article/details/44134791原始模型是这样写的,一摸一样-(void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    
    self.navigationController.navigationBarHidden = YES;
    
    // 删除系统自动生成的UItabButton
    for (UIView *child in self.tabBar.subviews)
    {
        if ([child isKindOfClass:[UIControl class]])
        {
            [child removeFromSuperview];
        }
    }
}
也删除了系统的tabBar.
为什么还会重叠? 并没有删除系统的tabBar

解决方案 »

  1.   

    iOS11删除tabBar后打印
    (lldb) po self.tabBar.subviews
    <__NSArrayM 0x1c4444530>(
    <_UIBarBackground: 0x13bf32580; frame = (0 0; 320 49); userInteractionEnabled = NO; layer = <CALayer: 0x1c0828e20>>,
    <TabBar: 0x13bf332a0; frame = (0 0; 320 49); layer = <CALayer: 0x1c0829180>>,
    <UITabBarButton: 0x139dfb440; frame = (2 1; 103 48); opaque = NO; layer = <CALayer: 0x1c082d880>>,
    <UITabBarButton: 0x13bf479a0; frame = (109 1; 102 48); opaque = NO; layer = <CALayer: 0x1c082eca0>>,
    <UITabBarButton: 0x139e78930; frame = (215 1; 103 48); opaque = NO; layer = <CALayer: 0x1c042e3a0>>
    )iOS10之前打印
    (lldb) po self.tabBar.subviews
    <__NSArrayM 0x17005dac0>(
    <_UIBarBackground: 0x151d889b0; frame = (0 0; 320 49); userInteractionEnabled = NO; layer = <CALayer: 0x17423bf80>>,
    <TabBar: 0x151d81580; frame = (0 0; 320 49); layer = <CALayer: 0x174238720>>
    )明显是删除了 可是为什么还有添加?
      

  2.   

    iOS11上只能隐藏,不能删除。因为控件内部在下一次layout时会自动把删除的元素加上去