从UITabBar中删除选项卡

时间:2015-09-28 14:53:03

标签: ios uitabbarcontroller uitabbar

我有一个自定义的UITabBarController,我正在尝试从中动态删除项目,具体取决于用户的设置。

这是第一次尝试:

-(void) updateTabs {
    NSMutableArray *tabs = [NSMutableArray arrayWithArray:self.viewControllers];
    [tabs removeObjectAtIndex:3];
    [self setViewControllers:tabs animated:YES];
}

通过此尝试,标签栏也会变得混乱,间距不会按预期更新,直到您点击几次图标为止。

这是第二次尝试:

-(void) updateTabs {

    NSMutableArray *tabs = [NSMutableArray arrayWithArray:self.viewControllers];
    [tabs removeObjectAtIndex:3];
    [self.tabBar setItems:tabs animated:YES];
}

此尝试终止,应用程序终止,并显示错误:“不允许直接修改由标签栏控制器管理的标签栏。”

我不确定这是否相关,但代码是根据收到的通知调用的:

[[NSNotificationCenter defaultCenter] addObserver:self
    selector:@selector(updateTabs) name:@"SettingsUpdated" object:nil];

StackOverflow上有一些类似的问题,这些问题往往指向我上面的两次尝试。有没有人对最佳方法有任何建议?

0 个答案:

没有答案