上个页面写了如何 创建 tabBar中间凸起按钮,现在有需求是:
- 当是任务管理Item,点击加号按钮时,弹出框是 任务创建页面。
- 当是OA办公Item时,点击加号按钮,弹出的是 创建工单管理
如何判断点击了哪个选项
class LJMainController: UITabBarController {
/// 最近一次选择的Index
var _lastSelectedIndex:Int = 0
}
使用 tabbar的代理“ tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem” 方法来获取到点击了哪个item。
extension LJMainController {
override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
// 获得选中的item
let tabIndex = tabBar.items?.index(of: item)
if tabIndex != _lastSelectedIndex {
// 设置最近一次变更
_lastSelectedIndex = tabIndex!
/// OA 是 2
/// 任务管理是1
print("_lastSelectedIndex = \(_lastSelectedIndex)")
}
}
}
在这里,因为只有三个item,中间的还是凸起的添加按钮,在这个方法中,是获取不到添加按钮的index 的。可能是因为已经被覆盖了。所以可以安心的直接赋值给 变量 “ _lastSelectedIndex”
在 加号按钮的点击事件中写判断内容:
// MARK:- 中间按钮
extension LJMainController {
// fileprivate 文件内私有属性和方法,仅在当前文件中可以访问,包括同一个文件中不同的类
// private: 私有属性和方法,仅在当前类中可以访问,不包括分类。
@objc fileprivate func composeStatus(){
setTabBarVisible(visible: !tabBarIsVisible(), animated: true)
if _lastSelectedIndex == 2 { // OA办公
print("OA办公")
}else if _lastSelectedIndex == 0 { // 任务管理
print("任务管理")
}
}
}