快速检查单击了哪个标签栏项目

Posted

技术标签:

【中文标题】快速检查单击了哪个标签栏项目【英文标题】:swift check which tab bar item was clicked 【发布时间】:2016-05-10 23:14:17 【问题描述】:

我正在使用标签栏控制器,我想知道是否有办法检查正在单击哪个标签?

如果用户单击“帐户”选项卡但未登录,我想重定向到全屏模式登录屏幕而不是帐户 VC。

【问题讨论】:

【参考方案1】:

您可以在您的自定义 UITabBarController 或其他地方执行此操作,并覆盖“didSelectItem”函数。

import UIKit

class TabbarViewController: UITabBarController 

    override func viewDidLoad() 


    override func tabBar(tabBar: UITabBar, didSelectItem item: UITabBarItem) 
    print("Selected Index :\(self.selectedIndex)");



【讨论】:

如何取消更改其他视图控制器?【参考方案2】:

在您概述的场景中,我会检查当前用户是否已登录,如果未登录到您的应用程序的相应屏幕。

【讨论】:

这就是我想做的。但是如何检查帐户选项卡是否被点击,以便我可以检查我应该触发什么 segue? o,是的,使用 Sausage 评论的委托方法【参考方案3】:

UITabBarDelegate 的 didSelectItem

【讨论】:

【参考方案4】:

其他人提供的选项很好,但我想让你知道另一种方式。在 viewWillAppear、viewDidAppear 或 viewDidLoad 函数中,你可以调用你需要的东西去 segue 到一个登录 ViewController

【讨论】:

以上是关于快速检查单击了哪个标签栏项目的主要内容,如果未能解决你的问题,请参考以下文章

如何通过按钮单击控制标签栏项目?

iphone在按钮单击时更改标签栏项目

使用目标 c 后,UiViewController 不会从标签栏项目中快速加载

使用目标 c 后,UiViewController 不会从标签栏项目中快速加载

如何从“更多”标签栏项目中的编辑检测标签栏项目更改?

标签栏项目过渡