swift - 查找选择了哪个标签栏项目
问题描述
我正在寻找一种方法来查找在我的标签栏控制器上选择了哪个标签栏项目。
我有 5 个项目,其中一个,如果用户未登录,我想显示一个“注册视图”。
我已经完成了所有验证,但我找不到检查用户是否点击了我的标签栏上的第四项的好方法。
有任何想法吗 ?谢谢
self.tabBarController?.delegate = UIApplication.shared.delegate as? UITabBarControllerDelegate
func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
if viewController is CalculatorViewController {
print("Redirect to register view")
}
return true
}
解决方案
你可以尝试使用这样的东西(如果你使用的是导航控制器,当然)
override func viewDidLoad() {
super.viewDidLoad()
if let index = self.tabBarController?.selectedIndex, index == 3 {
// do things here
}
}
UPD。 甚至像这样
override func viewDidLoad() {
super.viewDidLoad()
if !userLogedIn {
self.tabBarController?.selectedIndex = index // index is your tab bar item with login view
}
}
推荐阅读
- mysql - Talend MySQL 流一直停止在 11599 行
- java - Android 共享 Intent 选择器 - 根据接受的文件大小过滤应用
- wordpress - 坏链接解决
- java - 模拟新对象
- kubernetes - redis哨兵故障转移后master变成slave
- c# - 错误“客户端未通过身份验证以发送匿名邮件”
- java - 如何在单个线程中执行 OSGI 包的激活和停用方法
- python - 如何设置窗口大小以在 python 中使用 selenium 和 chrome 无头 webdriver 获取整页截图?
- r - 在位置拆分 data.table
- reactjs - Dispatch 不会更新我在 Redux 中的组件