如何在 swift 3 中动态隐藏 tabBarController 中的选项卡

Shu*_*age 5 uitabbarcontroller uitabbar ios swift ios11

我正在使用 UITabBarController 并使用情节提要中的关系 Segue 添加选项卡。

如何根据登录用户角色隐藏特定选项卡?

Pra*_*iya 3

如果您想从选项卡栏控制器中删除选项卡,请执行以下操作(当您的用户未登录时)

NSInteger indexToRemove = 0;
NSMutableArray *tabs = [NSMutableArray arrayWithArray:self.tabBarController.viewControllers];
[tabs removeObjectAtIndex:indexToRemove];
self.tabBarController.viewControllers = tabs;
Run Code Online (Sandbox Code Playgroud)

当您的用户登录时

UIViewController *viewController = [[UIViewController alloc] init];
NSMutableArray *tabs = [NSMutableArray arrayWithArray:self.tabBarController.viewControllers];
[tabs addObject:viewController];
self.tabBarController.viewControllers = tabs;
Run Code Online (Sandbox Code Playgroud)

迅捷版

删除选项卡

let indexToRemove = 0
if var tabs = self.tabBarController?.viewControllers {
  tabs.remove(at: indexToRemove)
  self.tabBarController?.viewControllers = tabs
} else {
  print("There is something wrong with tabbar controller")
}
Run Code Online (Sandbox Code Playgroud)

添加选项卡

let indexToAdd = 2
let vc = UIViewController.init()
if var tabs = self.tabBarController?.viewControllers {
  tabs.append(vc) // Append at last index of array
  // tabs.insert(vc, at: indexToAdd)  // Insert at specific index
  self.tabBarController?.viewControllers = tabs
} else {
  print("There is something wrong with tabbar controller")
}
Run Code Online (Sandbox Code Playgroud)