如何为同一个标签栏项目显示不同的视图页面?

How to show a different view page for a same tab bar item?

我在故事板中创建了一个 UITabBarController。 三个不同的 UIViewControllers 被手动 segued 到每个标签栏项目。 我想要的是针对一个选项卡栏项目直接到不同的视图控制器。

例如,我在索引 2 处有一个 myProfile 选项卡栏项目,我想显示未注册用户的登录页面、普通用户的个人资料页面以及管理员用户的具有附加功能的个人资料页面。

我想根据条件将第三个选项卡栏项目设置为指向 login_view(第二个右边)或 profile_view(最右边)。我应该怎么做?

my storyboard

您可以创建一个新的 class 并扩展它的 UITabBarController,并将 viewController 的数组更改为您想要在该位置设置的 ViewController ,如果用户是否被记录。例如

import UIKit

class TabBarViewController: UITabBarController {

var isLogged = false override func viewDidLoad() { super.viewDidLoad() configureTabBar() } func configureTabBar() { if(isLogged) { self.viewControllers?[1] = ProfileViewController() } }

}

设置配置文件ViewController 在您拥有登录页面的位置(本例中为 1)。之后,我们需要在故事板上设置自定义 UITabBarController :

  1. Select 标签栏视图控制器
  2. 转到身份检查器(在右侧)
  3. 设置我们自定义的TabBarViewController,下图就可以看到了link:

https://i.stack.imgur.com/jOuP3.png