- 今天刚接触到自定义tabBar,当自己定义完tabBar之后在loadView把原来的tabBar上的button移除的时候发现怎么也不行,后来经提醒要在viewWillappear这个方法里写才行
![打印结果.png](https://img.haomeiwen.com/i1511652/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
网友评论