RedRain的简书:http://www.jianshu.com/users/29e03e6ff407/latest_articles
起因: 自定义的TabbarView, 在viewWillAppear中删除了系统tabbar上面的item, 一切想象的那么美好, 但是在利用popToRootViewControllerAnimated的时候, 原本删除的item又出现了
WTF !? 什么鬼!
打断点发现, 退回的时候并没有调用viewWillAppear, 使用这里面的按钮没被删除掉, 具网友说是在iOS8, 这个item会动态的添加所以之前删除的item又出现了, 既然viewWillAppear不能捕捉到这个返回的timing
, 就换另找方法来处理, 那么就是它了!~
-(void)viewWillLayoutSubviews
解决方法:完美收官~ 撒花 ❀❀❀❀❀❀❀❀
-(void)viewWillLayoutSubviews{
[super viewWillLayoutSubviews];
// 删除系统自动生成的UITabBarButton
for (UIView *child in self.tabBar.subviews) {
if ([child isKindOfClass:[UIControl class]]) {
[child removeFromSuperview];
}
}
[super viewWillAppear:animated];
}
- (void)viewWillAppear:(BOOL)animated
{
// 删除系统自动生成的UITabBarButton
for (UIView *child in self.tabBar.subviews) {
if ([child isKindOfClass:[UIControl class]]) {
[child removeFromSuperview];
}
}
[super viewWillAppear:animated];
}