如何允许选项卡栏项具有多个视图控制器

时间:2017-01-26 23:13:27

标签: ios swift uiviewcontroller uitabbarcontroller uitabbar

我已经坚持这个问题几天了,任何帮助都会受到赞赏。

我有UITabBarController,有TabBarItem个。{

我想确定向用户显示哪个视图控制器,具体取决于用户是否已登录。

例如,当用户未登录时,我想根据选择的TabBarItem显示不同的登录屏幕 - 每次登录看起来都不同。当用户登录时,我想显示所选TabBarItem

的正常内容

我想为每个标签栏项目设置多个ViewController。当用户选择TabBarItem时,确定用户是否已登录,然后显示正确的```ViewController。我不确定这是否是正确的方法以及如何实现这种行为。

更新: 这是我提出的解决方案,但想知道每个人的想法 - 这是否是正确的方法。 这就是我的Storyboard的样子: enter image description here

想法是当用户登录时我将显示登录视图控制器,当用户未登录时,我将显示已注销的视图控制器。

我会使用self.present(...)来更改登录和退出ViewController

1 个答案:

答案 0 :(得分:1)

您可以使用setViewControllers更改显示的标签页。只需在用户登录或注销时设置所需viewControllers的数组。

class TabBarController: UITabBarController {
    func onMyLogin() {
        setViewControllers(myNormalViewControllers, animated: false)
    }
    func onMyLogout() {
        setViewControllers(myUnidentifiedViewControllers, animated: false)
    }
}