如何手动触发 UIBarButtonItem 点击事件?
How to fire a UIBarButtonItem tap event manually?
我有一个自定义 UIButton,它是 UIBarButtonItem 的子视图:
guard let tab1 = self.tabBar.items![0].value(forKey: "view") as? UIView else {return}
let button2Test = UIButton()
tab1.addSubview(button2Test)
自定义 UIButton,有一个目标:
button2Test.addTarget(self, action: #selector(buttonTouchUpInsideP3), for: [.touchUpInside])
button2Test.addTarget(self, action: #selector(buttonTouchInsideBoundsP3), for: [.touchDown, .touchDragEnter])
button2Test.addTarget(self, action: #selector(buttonDraggedOutOfBoundsP3), for: [.touchDragExit, .touchCancel])
基本上,在 buttonTouchUpInsideP3 函数中,我想以编程方式/手动使特定索引处的 UIBarButtonItem 像被点击一样触发,因为 UIButton 的目标不幸的是,不允许点击下面的实际 UIBarButtonItem...
我的尝试由于错误而没有成功:(我从 outdated Q 中得到)。请注意,我在 buttonTouchUpInsideP3 目标函数中调用了它,一旦您松开按钮。
let homeTabBarItem = self.tabBar.items![0]
UIApplication.sharedApplication.sendAction(homeTabBarItem.action, to: homeTabBarItem.target, from: nil, forEvent: nil)
您可以直接设置 UIBarButtonItem 的目标和操作属性。
我知道怎么做了:
tabBarController.selectedIndex = 0
把这个放在按钮的 TouchUpInside 函数里就行了! ;)
您或许还应该致电:
self.tabBar(self.tabBar, didSelect: self.tabBar.items![0])
我有一个自定义 UIButton,它是 UIBarButtonItem 的子视图:
guard let tab1 = self.tabBar.items![0].value(forKey: "view") as? UIView else {return}
let button2Test = UIButton()
tab1.addSubview(button2Test)
自定义 UIButton,有一个目标:
button2Test.addTarget(self, action: #selector(buttonTouchUpInsideP3), for: [.touchUpInside])
button2Test.addTarget(self, action: #selector(buttonTouchInsideBoundsP3), for: [.touchDown, .touchDragEnter])
button2Test.addTarget(self, action: #selector(buttonDraggedOutOfBoundsP3), for: [.touchDragExit, .touchCancel])
基本上,在 buttonTouchUpInsideP3 函数中,我想以编程方式/手动使特定索引处的 UIBarButtonItem 像被点击一样触发,因为 UIButton 的目标不幸的是,不允许点击下面的实际 UIBarButtonItem...
我的尝试由于错误而没有成功:(我从 outdated Q 中得到)。请注意,我在 buttonTouchUpInsideP3 目标函数中调用了它,一旦您松开按钮。
let homeTabBarItem = self.tabBar.items![0]
UIApplication.sharedApplication.sendAction(homeTabBarItem.action, to: homeTabBarItem.target, from: nil, forEvent: nil)
您可以直接设置 UIBarButtonItem 的目标和操作属性。
我知道怎么做了:
tabBarController.selectedIndex = 0
把这个放在按钮的 TouchUpInside 函数里就行了! ;)
您或许还应该致电:
self.tabBar(self.tabBar, didSelect: self.tabBar.items![0])