有条件地在 UITabBar 选择上显示视图控制器

Posted

技术标签:

【中文标题】有条件地在 UITabBar 选择上显示视图控制器【英文标题】:Conditionally show a view controller on UITabBar selection 【发布时间】:2015-07-15 03:19:43 【问题描述】:

上下文:当点击我的“用户”标签栏项目时,我想检查用户是否登录。如果是,我想显示我的“个人资料”视图,如果没有,我想显示我的“日志在”视图中。我该怎么做呢?我尝试将UITabBarController 子类化并将我的逻辑放入prepareForSegue 函数中,但无济于事。

本质上,在选择标签栏项目时,如何选择要推送的视图控制器?

【问题讨论】:

【参考方案1】:

你想要的是UITabBarControllerDelegate的这个委托方法

optional func tabBarController(_ tabBarController: UITabBarController,
shouldSelectViewController viewController: UIViewController) -> Bool

文档

返回值

如果应选择视图控制器的选项卡,则为YES;如果当前选项卡应保持活动状态,则为NO。

讨论

标签栏控制器调用此方法以响应用户点击标签栏项目。您可以使用此方法动态决定是否应将给定选项卡设为活动选项卡。

【讨论】:

以上是关于有条件地在 UITabBar 选择上显示视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式在点击时选择的 UITabBar 视图

UITabBar 的 Topview 控制器

UITabBar 选择的选项卡在启动时不会改变色调颜色

在呈现模态视图时显示 UITabBar

UITabBar 自定义背景图像应用于一个视图控制器而不是 AppDelegate

用 UIToolBar 替换 UITabBar