我已经坚持这个问题几天了,任何帮助都会受到赞赏。
我有UITabBarController
,有TabBarItem
个。{
我想确定向用户显示哪个视图控制器,具体取决于用户是否已登录。
例如,当用户未登录时,我想根据选择的TabBarItem
显示不同的登录屏幕 - 每次登录看起来都不同。当用户登录时,我想显示所选TabBarItem
我想为每个标签栏项目设置多个ViewController
。当用户选择TabBarItem
时,确定用户是否已登录,然后显示正确的```ViewController。我不确定这是否是正确的方法以及如何实现这种行为。
更新:
这是我提出的解决方案,但想知道每个人的想法 - 这是否是正确的方法。
这就是我的Storyboard的样子:
想法是当用户登录时我将显示登录视图控制器,当用户未登录时,我将显示已注销的视图控制器。
我会使用self.present(...)
来更改登录和退出ViewController
。
答案 0 :(得分:1)
您可以使用setViewControllers
更改显示的标签页。只需在用户登录或注销时设置所需viewControllers的数组。
class TabBarController: UITabBarController {
func onMyLogin() {
setViewControllers(myNormalViewControllers, animated: false)
}
func onMyLogout() {
setViewControllers(myUnidentifiedViewControllers, animated: false)
}
}