移除TabBar原有的button的时间

  • 今天刚接触到自定义tabBar,当自己定义完tabBar之后在loadView把原来的tabBar上的button移除的时候发现怎么也不行,后来经提醒要在viewWillappear这个方法里写才行
![打印结果.png](http://upload-images.jianshu.io/upload_images/1511652-8da3100aef497080.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
-(void)viewWillAppear:(BOOL)animated
{

//    [super viewWillAppear:animated];
    NSLog(@"移除之前个数-----%zd",self.tabBar.subviews.count);
    
    // 移除tabBar之前的按钮
    for (UIView *childView in self.tabBar.subviews) {
        
        if (![childView isKindOfClass:[ZSTabBar class]]) {
            
            [childView removeFromSuperview];
        }
    }
    
    NSLog(@"移除之后个数----%zd",self.tabBar.subviews.count);
}
打印结果.png
tabBar.png
  • 当时第一时间就知道这个打印结果不对,不可能是1个,但是也不知道错在了哪里,然后蠢蠢的自己弄了好久才发现在调用viewWillappear的时候忘了调用父类的方法来还原本来的一些操作.加上这句就好了

- (void)viewWillAppear:(BOOL)animated
{

    [super viewWillAppear:animated];
    NSLog(@"移除之前个数-----%zd",self.tabBar.subviews.count);
    
    // 移除tabBar之前的按钮
    for (UIView *childView in self.tabBar.subviews) {
        
        if (![childView isKindOfClass:[ZSTabBar class]]) {
            
            [childView removeFromSuperview];
        }
    }
    
    NSLog(@"移除之后个数----%zd",self.tabBar.subviews.count);
}
  • 然后一切都正常了,啦啦啦,看来是系统的tabBar的按钮会在这个方法里面才加进去
改完之后.png
改完之后tabBar.png

你可能感兴趣的:(移除TabBar原有的button的时间)