[RedRain笔记] - UITabBar与popToRootViewControllerAnimated的恩怨

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];
}

你可能感兴趣的:([RedRain笔记] - UITabBar与popToRootViewControllerAnimated的恩怨)