提问者:小点点

如何手动激发UIBarButtonItem tap事件?


我有一个自定义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,不幸的是。。。

我的尝试是:(我从一个过时的Q得到的),因为错误而没有成功。 请注意,我在buttonTouchUpInsideP3目标函数中调用这个函数,这些函数是在您松开按钮之后调用的。

let homeTabBarItem = self.tabBar.items![0]
UIApplication.sharedApplication.sendAction(homeTabBarItem.action, to: homeTabBarItem.target, from: nil, forEvent: nil)

共1个答案

匿名用户

您可以直接设置UIBarButtonItem的目标和操作属性。