想看详细的,可以看这篇文章,有时候 在popToViewController 的时候 ,原本一开始被我们移除的UITabbarButton会莫名其妙的再次加载到UITabBar上了,考虑到我们一开始就在UITabBarController的- ViewDidLoad 方法里面移除了,如下面这样:
//@interface MainTabBarController : UITabBarController
- (void)viewDidLoad {
for (UIView *subView in self.tabBar.subviews) {
[subView removeFromSuperview];
}
//自定义一些控件子视图
}
而且 -ViewDidLoad 此方法在生命周期里面只会走一次,所以我们断定一定是在Apple 在 [super viewWillLayoutSubviews]
做了一些判断,所以我们必须要在 [super viewWillLayoutSubviews]
之后再移除掉就行了
//@interface MainTabBarController : UITabBarController
- (void)viewWillLayoutSubviews {
[super viewWillLayoutSubviews];
for (UIView *subView in self.tabBar.subviews) {
![subView isKindOfClass:NSClassFromString(@"UITabBarButton")] ?: [subView removeFromSuperview];
}
}
网友评论