如何允许标签栏项具有多个视图控制器
Posted
技术标签:
【中文标题】如何允许标签栏项具有多个视图控制器【英文标题】:How to allow a Tab Bar Item to have multiple view controllers 【发布时间】:2017-01-26 23:13:26 【问题描述】:我已经被这个问题困扰了几天了,我们将不胜感激。
我有一个UITabBarController
,它有四个TabBarItem
s。
我想根据用户是否登录来确定向用户显示什么视图控制器。
例如,当用户未登录时,我想根据选择的TabBarItem
显示不同的登录屏幕 - 每个登录看起来都不同。当用户登录时,我想显示所选TabBarItem
的正常内容
我正在考虑为每个标签栏项目设置多个 ViewController
s。当用户选择TabBarItem
时,判断用户是否登录,然后显示正确的```ViewController.我不确定这是否是正确的方法以及如何实现这种行为。
更新: 这是我想出的解决方案,但想知道每个人的想法 - 这是否是正确的方法。 这就是我的故事板的样子:
这个想法是,当用户登录时,我会显示登录视图控制器,当用户未登录时,我会显示已注销的视图控制器。
我将使用self.present(...)
更改登录和注销ViewController
s。
【问题讨论】:
能否请添加您当前的代码 【参考方案1】:您可以使用setViewControllers
更改显示的标签。只需在用户登录或注销时设置所需的 viewController 数组即可。
class TabBarController: UITabBarController
func onMyLogin()
setViewControllers(myNormalViewControllers, animated: false)
func onMyLogout()
setViewControllers(myUnidentifiedViewControllers, animated: false)
【讨论】:
感谢您的建议。我今天会试试看。我还用我想到的可能解决方案更新了我的问题。很想知道你的想法是什么 @breaktop 您的解决方案也有效。您希望如何为两种状态之间的过渡设置动画是一个品味问题。在目前的情况下,我更喜欢使用原生animated: true
的单个 TabBarController 的解决方案。
你能在客观c中给出答案吗以上是关于如何允许标签栏项具有多个视图控制器的主要内容,如果未能解决你的问题,请参考以下文章
如何在 1 项标签栏控制器中制作顶部标签栏以快速显示多个视图控制器?
如何创建一个像 Instagram 主页一样的页面视图控制器,它也可以滚动标签栏?