自定义TabBar之前我们常常需要先移除系统自带TabBar,它分为用代码创建和使用用Storyboard两种情况。
//移除系统自带TabBar
- (void) _removeTabBarButton {
for(UIView *view in self.tabBar.subviews) {
Class class = NSClassFromString(@"UITabBarButton");
if ([view isKindOfClass:class]) {
[view removeFromSuperview];
}
}
}
在使用代码创建UITabBarController时,上面的方法一般被这样调用
- (void)viewDidLoad {
[super viewDidLoad];
//自定义TabBar
[self createTabBar];
}
在使用Storyboard时,如果直接在viewDidLoad方法里面调用,我们移除的会是一个空的TabBar,而在viewDidLoad被调用以后,StoryBoard会再创建TabBar,所以这个时候我们直接在viewDidLoad里面调用移除的方法是没有效果的。他的调用应该是这样的
//视图将要出现
- (void) viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
//移除系统自带的TabBar
[self _removeTabBarButton];
}